Java仅在未在尝试和捕获块中抛出异常时才运行代码?
2022-09-01 10:11:52
如何使其仅在未引发异常时才运行代码?
最后,无论是否存在异常,代码都会运行。
try {
//do something
} catch (Exception e) {}
//do something only if nothing was thrown
如何使其仅在未引发异常时才运行代码?
最后,无论是否存在异常,代码都会运行。
try {
//do something
} catch (Exception e) {}
//do something only if nothing was thrown
以下是两种方法:
try {
somethingThatMayThrowAnException();
somethingElseAfterwards();
} catch (...) {
...
}
或者,如果您希望第二个代码块位于该块之外:try
boolean success = false;
try {
somethingThatMayThrowAnException();
success = true;
} catch (...) {
...
}
if (success) {
somethingElseAfterwards();
}
您也可以将语句放在一个块中,但是您的问题中没有足够的信息来判断这是否更可取。if
finally
try {
doSomething();
doSomething2();
} catch (Exception e) {
doSomething3();
}
在此示例中,仅当 没有引发异常时才会执行。doSomething2()
doSomething()
如果 引发异常,将跳过 ,执行将跳转到doSomething()
doSomething2();
doSomething3();
另请注意,如果出现由doSomething3()
doSomething2();
如果未引发异常,则不会执行。doSomething3();