2013-10-02 44 views
0

我不明白assert语句如何停止程序?它是抛出一个异常还是其他的东西?如果它抛出一个异常,我可以做这样的例外:assert语句如何停止程序?

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

你为什么不试试? – Pol0nium

+3

你为什么要停止断言? – thegrinner

回答

5

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

代码

assert test; 

是一样一样的

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

任何异常或错误可以被捕获,但是,这并不使它成为一个很好的主意。

错误不是例外,所以catch(Exception)将不会捕获它。

+0

那么为什么人们使用assert语句而不是“... new new AssertionError();”。有人说你可以禁用他们,但他们正在使用单独的测试类,为什么他们想禁用它们? – hellzone

+0

@PeterLawrey那么我如何设置'disabledAssertions = true'? –

+0

@MaximShoustin断言在默认情况下是禁用的,您可以使用'-ea'或特定的命令启用它们http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html –