“ assert”关键字有什么作用?
怎么assert
办?例如在函数中:
private static int charAt(String s, int d) { assert d >= 0 && d <= s.length();
if (d == s.length()) return -1;
return s.charAt(d);
}
回答:
如果使用-enableassertions
(或-ea简称)启动程序,则此语句
assert cond;
相当于
if (!cond) throw new AssertionError();
如果不使用此选项启动程序,则assert语句将无效。
例如,assert d >= 0 && d <= s.length()
;在你的问题中发布的,等同于
if (!(d >= 0 && d <= s.length())) throw new AssertionError();
(如果你启动的-enableassertions
是。)
Java语言规范assert正式为:14.10。该声明说:
14.10。的assert
声明
的断言是一个assert
含有一个布尔表达式语句。断言是启用还是禁用。如果启用了断言,则断言的执行将导致对布尔表达式进行求值,并且如果表达式的求值为,则会报告错误false。如果断言被禁用,则断言的执行不起作用。
当“启用或禁用”控制与-ea
开关和“报告错误”意味着AssertionError
被抛出。
最后,一个鲜为人知的功能assert:
你可以: "Error message"
像这样追加:
assert d != null : "d is null";
指定应该抛出什么AssertionError的错误消息。
以上是 “ assert”关键字有什么作用? 的全部内容, 来源链接: utcz.com/qa/407181.html