在Java异常的catch块中会发现一个断言错误?
发布时间:2020-12-14 05:15:05 所属栏目:Java 来源:网络整理
导读:码:- try { Assert.assertEquals("1","2");} catch (Exception e) { System.out.println("I am in error block");} 如果assert语句失败,我想捕获catch块中的错误.我正在尝试使用上述代码,而不是发生. 在Java异常的catch块中会被断言错误捕获吗? 解决方法
码:-
try { Assert.assertEquals("1","2"); } catch (Exception e) { System.out.println("I am in error block"); } 如果assert语句失败,我想捕获catch块中的错误.我正在尝试使用上述代码,而不是发生. 在Java异常的catch块中会被断言错误捕获吗? 解决方法
你几乎回答了你自己的问题.由于它是一个错误(或者更具体地说,它扩展了java.lang.Error),你的catch块不会捕获Assert抛出Assert引发的AssertionError.
See the docs了解更多信息.您的catch块只捕获延伸
java.lang.Exception 的Throwable对象
如果你真的想抓住它 – 你需要使用 catch (AssertionError e) { ... 然而,由于others有mentioned,这是使用断言的一种非常不寻常的方法 – 通常应该通过,如果它们失败,那么您想要执行程序是非常不寻常的.这就是为什么失败会引发错误而不是异常.您可以在this question中阅读更多关于(不)捕捉错误的信息. 你确定你不只是想要一个测试 – if(variableName ==“1”)? 注意,如果您正在测试单元测试帮助程序代码,就像匹配器一样,捕获AssertionError可能是有意义的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |