Java仅在未在尝试和捕获块中抛出异常时才运行代码?

2022-09-01 10:11:52

如何使其仅在未引发异常时才运行代码?

最后,无论是否存在异常,代码都会运行。

try {
   //do something
} catch (Exception e) {}
//do something only if nothing was thrown

答案 1

以下是两种方法:

try {
    somethingThatMayThrowAnException();
    somethingElseAfterwards();
} catch (...) {
    ...
}

或者,如果您希望第二个代码块位于该块之外:try

boolean success = false;
try {
    somethingThatMayThrowAnException();
    success = true;
} catch (...) {
    ...
}
if (success) {
    somethingElseAfterwards();
}

您也可以将语句放在一个块中,但是您的问题中没有足够的信息来判断这是否更可取。iffinally


答案 2
try {
    doSomething();
    doSomething2();
} catch (Exception e) {
    doSomething3();
}

在此示例中,仅当 没有引发异常时才会执行。doSomething2()doSomething()

如果 引发异常,将跳过 ,执行将跳转到doSomething()doSomething2();doSomething3();

另请注意,如果出现由doSomething3()doSomething2();

如果未引发异常,则不会执行。doSomething3();


推荐