运行时执行的两种情况有什么区别?
private void doStuff() {
assert (y > x);
// more code assuming y is greater than x
}
private void doStuff() {
assert (y > x): "y is " + y + " x is " + x;
// more code assuming y is greater than x
}
Run Code Online (Sandbox Code Playgroud)
该assert声明采用以下形式
assert Expression1 : Expression2 ;
Run Code Online (Sandbox Code Playgroud)
在Java语言规范状态
否则,通过根据以下值进行选择继续执行
Expression1:
如果值为true,则不执行进一步操作,并且assert语句正常完成.
如果值为false,则执行行为取决于是否
Expression2存在:
如果
Expression2存在,则进行评估.
如果评估由于某种原因突然完成,则断言语句会因同样的原因而突然完成.
如果评估正常完成,则会创建一个AssertionError实例,其"详细消息"是Expression2的结果值.
如果实例创建由于某种原因突然完成,则assert语句因同样的原因突然完成.
如果实例创建正常完成,则assert语句通过抛出新创建的
AssertionError对象而突然完成.如果
Expression2不存在,AssertionError则创建没有"详细消息" 的实例.
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |