总结:在try{}代码块中如果遇到抛出的异常需要进行异常处理,当程序抛出异常时停止执行try{}中代码,进入catch{}代码块执行异常处理代码,在执行完成后如果存在finally{}代码块则进入finally代码块执行,接着会执行后面的代码直到return。
测试代码如下:
public static void main(String[] args) {
System.out.println(test());
}
public static int test(){
try {
int i=1/0;
System.out.println(i);
return i;
} catch (Exception e) {
System.out.println("异常代码");
return 1;
}finally{
System.out.println("finally代码");
}
// System.out.println("最后的代码");
// return 0;
}
如果代码抛出异常则执行结果如下:
异常代码
finally代码
1
如果代码正常执行:
0
finally代码
0
try{}catch{}代码块中的return方法总是在finally之后执行,将return放到最后。
public static void main(String[] args) {
System.out.println(test());
}
public static int test(){
try {
int i=1/0;
System.out.println(i);
return i;
} catch (Exception e) {
System.out.println("异常代码");
}finally{
System.out.println("finally代码");
}
System.out.println("最后的代码");
return 2;
}
异常执行结果如下:
异常代码
finally代码
最后的代码
2
正常执行结果如下:
0
finally代码
0
如果try和catch中都有return则finally代码块之后不能出现任何代码
System.out.println("最后的代码");
return 2;
不建议把return放到finally块中。