我有一個簡單的疑問。在下面的兩個代碼,在第一return
語句被置於finally
塊
在final方法中放置return語句
public int method1(){
try{
// Some Stuff
} catch(Exception e){
e.printStackTrace();
} finally{
return 0;
}
}
而在第二return
語句內被作爲正常
public int method1(){
try{
// Some Stuff
} catch(Exception e){
e.printStackTrace();
} finally{
}
return 0;
}
是否有這兩者之間的任何差異?哪個可以用作更好的選擇?爲什麼?
你不應該在finally塊裏面有return語句。這可以覆蓋try塊中完成的事情,並可能導致真正複雜的邏輯。 –
在finally塊中返回的任何內容實際上都會覆蓋try/catch塊內的任何異常或返回值。 –