有沒有因爲try catch +return被面試官爲難過,來吧,武器在這裏,需要的來取吧!
關於try catch +return的一些面試題的總結,希望能幫到大家.感覺學完這些之後就沒有什麼try catch 的題能難倒自己了!
直接上乾貨....
乾貨 1 :
public static int method_1() {
int a = 1;
try {
return a;
} catch (Exception e) {
System.out.println("11");
} finally {
++a;
return a;
}
}
答案是: 2
乾貨2:
public static int method_2() {
int a = 1;
try {
int u=1/0;
return a;
} catch (Exception e) {
System.out.println("11");
} finally {
++a;
return a;
}
}
答案是 : 11 2
乾貨3:
public static int method_3() {
int a = 1;
try {
int u=1/0;
return a;
} catch ( Exception e) {
System.out.println("11");
return a;
} finally {
++a;
}
}
答案是 : 11 1
乾貨4:
public static int method_4() {
int a = 1;
try {
return a;
} catch (Exception e) {
System.out.println("11");
} finally {
++a;
}
return a;
}
答案是 : 2
乾貨5:
public static int method_5() {
int a = 1;
try {
int u=1/0;
return a;
} catch (Exception e) {
System.out.println("11");
return a+1;
} finally {
++a;
System.out.println("22");
}
}
答案是 : 11 22 2
做了以上幾道題什麼感覺呢,是不是好坑啊,和自己想的不一樣呢.給大家來一段神的總結!
/**
* try catch
*
* try 裏面的return可以返回但不能結束方法.
*
* catch ,finnally ,或者正常的return纔可以結束本方法.
*
* 因爲finnally始終要執行,所以當catch和finnally裏都有return ,catch裏的這個return不結束方法
*/
接下來看看你領悟了多少,小試牛刀一下下了
乾貨6:
public static int method_6() {
int a = 1;
try {
int u=1/0;
return a;
} catch ( ArithmeticException e) {
System.out.println("11");
return a+1;
} catch (Exception e) {
System.out.println("22");
return a;
}finally {
++a;
}
}
答案是 : 11 2
乾貨7:
public static int method_7() {
int a = 1;
try {
int u=1/0;
return a;
} catch ( NullPointerException e) {
System.out.println("11");
return a+1;
} catch (Exception e) {
System.out.println("22");
return a;
}finally {
++a;
}
}
答案是 : 22 1
是不是很有收穫的趕腳. 那是必須的,結論先用着哈,具體原理請看續集.. ...謝謝關注我哦