0

我不明白 assert 语句是如何停止程序的?是抛出异常还是别的什么?如果它引发异常,我可以通过以下方式捕获此异常:

try {  
    assert result != null;
} catch (Exception ex) {
    //some code
}
4

2 回答 2

5

我不明白 assert 语句是如何停止程序的?

编码

assert test;

if (!$disabledAssertions && test) throw new AssertionError();

可以捕获任何异常或错误,但这并不是一个好主意。

错误不是异常,因此catch(Exception)不会捕获它。

于 2013-10-02T14:54:45.630 回答
2

它抛出AssertionError。详细信息在JLS §14.10 The assert Statement中有详细说明。

请注意,可以禁用断言,在这种情况下assert是无操作的。

于 2013-10-02T14:54:37.593 回答