我在安卓中的方法的代碼:執行return語句
try {
something();
return obj;
}
catch (Exception e) {
e.printStackTrace();
}
return null;
當我運行在調試模式下的應用程序都return語句得到執行,甚至有沒有finally塊和編譯器確實需要第二次返回(當我清理它時,編譯器會說「缺少return語句」)如何實現這一點?即使沒有最後的嘗試塊,情況總是如此嗎?
我在安卓中的方法的代碼:執行return語句
try {
something();
return obj;
}
catch (Exception e) {
e.printStackTrace();
}
return null;
當我運行在調試模式下的應用程序都return語句得到執行,甚至有沒有finally塊和編譯器確實需要第二次返回(當我清理它時,編譯器會說「缺少return語句」)如何實現這一點?即使沒有最後的嘗試塊,情況總是如此嗎?
這是不可能的。調試器只是顯示它已脫離try-catch塊。突出顯示的行並不意味着它被執行。
不可能,請分享您的完整代碼。每個函數只執行一個return語句,即遇到函數中的「return」語句時,該函數的執行將暫停,並返回用戶定義或原始值,或者可以將其輸出給用戶。
需要,因爲如果第二回(return null;
)「的東西()」拋出異常,那麼第一回(return obj;
)將不會被執行
「兩個返回語句都會被執行」 - 請編輯您的問題併爲此聲明提供證據。 「這是怎麼可能的」 - 這是不可能的,這就是爲什麼你需要解釋你爲什麼會這樣想。 – CommonsWare
我認爲這只是由調試器顯示它已經離開了你的try-catch塊 – German
@CommonsWare我認爲OP正在逐步瀏覽代碼,並且看到它在每個return語句之間跳躍,使他/她認爲每條語句都被執行。 – Dayan