如何忽略 Java 中的异常

2022-09-01 06:28:11

我有以下代码:

TestClass test=new TestClass();
test.setSomething1(0);  //could, but probably won't throw Exception
test.setSomething2(0);  //could, but probably won't throw Exception

我想执行:即使(它上面的行)抛出一个异常。除了以下方法之外,还有没有办法做到这一点:test.setSomething2(0);test.setSomething(0)

try{
   test.setSomething1(0);
}catch(Exception e){
   //ignore
}
try{
   test.setSomething2(0);
}catch(Exception e){
   //ignore
}

我有很多test.setSomething在一行,所有这些都可能引发异常。如果他们这样做,我只想跳过那一行,转到下一行。

为了澄清,我不在乎它是否引发异常,并且我无法编辑引发此异常的代码的源代码。

在这种情况下,我不关心异常(请不要使用普遍量化的陈述,如“你永远不应该忽略异常”)。我正在设置某些对象的值。当我向用户呈现这些值时,我还是会执行 null 检查,因此是否执行任何代码行实际上并不重要。


答案 1
try {
 // Your code...
} catch (Exception ignore) { }

在关键字后使用该单词。ignoreException


答案 2

没有办法从根本上忽略抛出的异常。您可以做的最好的事情是最小化包装异常引发代码所需的样板。

如果您使用的是 Java 8,则可以使用以下方法:

public static void ignoringExc(RunnableExc r) {
  try { r.run(); } catch (Exception e) { }
}

@FunctionalInterface public interface RunnableExc { void run() throws Exception; }

然后,暗示静态导入,你的代码变成了

ignoringExc(() -> test.setSomething1(0));
ignoringExc(() -> test.setSomething2(0));

推荐