以下代码无法报告错误:
@Test
public void test() {
int a = 12;
int b =20;
try {
assertEquals(a, b);
}catch(Throwable t){
}
代码成功运行,但未报告任何错误。但是,假设将错误报告为!= b。如果我不使用try catch块,那么它确实报告了一个错误。不知道为什么断言不能在try catch块中工作。任何帮助将不胜感激。感谢
答案 0 :(得分:1)
Java中的断言建立在Java异常和异常处理之上。当Java断言失败时,结果是AssertionError异常,可以像任何其他Java异常一样捕获。因此,当您在try-catch块中放置断言并捕获断言抛出的异常时,执行将继续。有关Java断言和异常的更多详细信息,请参阅link。如果您有任何疑问,请与我们联系。
答案 1 :(得分:0)
这种情况正在发生,因为您正在使用
catch(Throwable t){
}
相反,如果您使用
catch(Exception e){
}
您的代码应该可以正常运行。
请在此处查看说明:Difference between using Throwable and Exception in a try catch