不知道这是否已经得到回答,但是。
我知道在 java 中有 try、catch 和 finally 块,但是只有在 try 没有错误/异常时才调用它吗?
目前,在说明需要运行的命令之后,我将布尔值设置为 true,并且在 try 和 catch 块之后,程序检查布尔值是否为 true。
我很确定有一种更简单的方法,不胜感激!
不知道这是否已经得到回答,但是。
我知道在 java 中有 try、catch 和 finally 块,但是只有在 try 没有错误/异常时才调用它吗?
目前,在说明需要运行的命令之后,我将布尔值设置为 true,并且在 try 和 catch 块之后,程序检查布尔值是否为 true。
我很确定有一种更简单的方法,不胜感激!
只需将您的代码放在块之后try...catch
并返回catch
:
boolean example() {
try {
//dostuff
} catch (Exception ex) {
return false;
}
return true;
}
如果您将 放在块return true
的末尾,这也将起作用,try
因为代码将跳转到catch
on 错误而不执行try
.
void example() {
try {
//do some stuff that may throw an exception
//do stuff that should only be done if no exception is thrown
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
不,只有在没有引发异常时才调用块。
catch
如果有异常,则调用该块,finally
无论如何都会调用该块。
如前所述,您可以通过以下方式模拟这样的野兽:
bool completed = false;
try {
doSomeStuff();
completed = true;
} catch (Exception ex) {
handleException();
} finally {
regularFinallyHandling();
if (completed) {
thisIsTheThingYouWant();
}
}
但是提供此功能的语言本身并没有内置任何东西。