我们都会不时地编写这样的代码:
try {
// ... some code.
} catch (SomeException e) {
// ... No action is required, just ignore.
}
有没有像注释这样的标准代码片段来表明我们真的打算忽略异常?向其他团队成员和静态分析器显示的内容我们确实需要在InterruptedException
之后跳过Thread.sleep()
这种情况?类似的东西:
Exception.ignore(e);
用Google搜索但未找到此类案例的标准。
这与确保例外的测试特别相关:
try {
action();
fail("We expected this to fail.");
} catch (ExpectedException e) {
ignore(e, "OK, so far so good.");
}
答案 0 :(得分:2)
忽略异常的唯一方法是捕获&吞下它,非常具体,除了当然,你不会想要抓住Exception e
,这将是一个非常糟糕的主意。
try{
... //code
}
catch( VerySpecificException ignore){
Log(ignore);
}
记录显然是可选的,但这是一种很好的做法。
答案 1 :(得分:2)
为了使代码保持异常处理或忽略,最好将异常var命名为ignored
:
try {
action();
} catch (ExpectedException ignored ) {}
答案 2 :(得分:2)
关于您参考测试的更新,如果您使用测试框架,您可以以预期例外的方式注释测试,例如:使用TestNG
@Test(expectedExceptions = ClassNotFoundException.class)
public void testSomething() {
// will succeed if a ClassNotFoundException is thrown
}