(所有源码均在:https://github.com/zongzhec/JavaPractise)
目录
Try-Catch 语句
当finally和return一起出现的情况
1. finally 里面有return,结果就是返回finally中的值;
2. finally 里面没有return, 结果就是try或者catch里面的值。
-> 总结:不建议在fianlly里面写return。
源码
package zongzhe.java_basic.exception;
public class TryCatchDemo {
public static void main(String[] args) {
System.out.println("returnInFinally: " + returnInFinally()); // i = 40
System.out.println("returnInFinally: " + returnNotInFinally()); // i =20
}
public static int returnInFinally() {
int i = 10;
try {
i = 20;
System.out.println("priocessing try, i = " + i);
return i;
} catch (Exception e) {
i = 30;
System.out.println("priocessing catch, i = " + i);
return i;
} finally {
i = 40;
System.out.println("priocessing dianlly, i = " + i);
return i;
}
}
public static int returnNotInFinally() {
int i = 10;
try {
i = 20;
System.out.println("priocessing try, i = " + i);
return i;
} catch (Exception e) {
i = 30;
System.out.println("priocessing catch, i = " + i);
return i;
} finally {
i = 40;
System.out.println("priocessing dianlly, i = " + i);
}
}
}