如何正确忽略Java中的异常?

时间:2014-08-12 13:55:39

标签: java exception

我们都会不时地编写这样的代码:

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.");
}

3 个答案:

答案 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
}