当我执行此代码时,我得到了#34;最后"
public class Tester {
static void method() throws Exception {
throw new Exception();
}
public static void main(String... args) {
try {
method();
} catch (Throwable th) {
try {
new Exception();
} catch (Exception e) {
System.out.print("Exception");
} finally {
System.out.print("finally");
}
}
}
}
无法弄清楚执行的流程!!
答案 0 :(得分:0)
如果代码finally
块中存在或不存在异常,则将执行try
块。
答案 1 :(得分:0)
上述代码的输出将是
finally
如果您想知道为什么输出不是
Exception finally
然后是因为在以下代码行中
try {
new Exception();
}
您只是声明了一个新的Exception
对象,但您并没有真正抛弃它。
如果您希望输出为Exception finally
,那么您必须通过放置throw new Exception();
而不是new Exception();
然后代码如下:
public class HelloWorld{
static void method() throws Exception{ throw new Exception(); }
public static void main(String... args){
try{method();}
catch(Throwable th)
{
try{ throw new Exception(); }
catch(Exception e){System.out.print("Exception");}
finally{System.out.print("finally");}
}
}
}
<强>输出强>
Exceptionfinally