2017-06-26 477 views
0

我在安卓中的方法的代碼:執行return語句

try { 
    something(); 
    return obj; 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 
return null; 

當我運行在調試模式下的應用程序都return語句得到執行,甚至有沒有finally塊和編譯器確實需要第二次返回(當我清理它時,編譯器會說「缺少return語句」)如何實現這一點?即使沒有最後的嘗試塊,情況總是如此嗎?

+3

「兩個返回語句都會被執行」 - 請編輯您的問題併爲此聲明提供證據。 「這是怎麼可能的」 - 這是不可能的,這就是爲什麼你需要解釋你爲什麼會這樣想。 – CommonsWare

+3

我認爲這只是由調試器顯示它已經離開了你的try-catch塊 – German

+2

@CommonsWare我認爲OP正在逐步瀏覽代碼,並且看到它在每個return語句之間跳躍,使他/她認爲每條語句都被執行。 – Dayan

回答

1

這是不可能的。調試器只是顯示它已脫離try-catch塊。突出顯示的行並不意味着它被執行。

-1

不可能,請分享您的完整代碼。每個函數只執行一個return語句,即遇到函數中的「return」語句時,該函數的執行將暫停,並返回用戶定義或原始值,或者可以將其輸出給用戶。

2

需要,因爲如果第二回(return null;)「的東西()」拋出異常,那麼第一回(return obj;)將不會被執行