2016-07-29 20 views
-3

我很困惑。這是否取決於具體情況?或者它有一個通用標準?任何人都可以給出一個總結告訴我何時使用if-else,以及何時使用try...catchJava:什麼時候應該使用if-else,何時應該使用try ... catch來處理條件檢查?

+0

else區塊條件語句'嘗試。當您嘗試的語句實際上會拋出異常時,catch語句只會作爲條件有用。當出現這種情況時,沒有辦法使用'if-else'來檢測它,因爲if-else會在發生異常時被完全中止 – Tibrogargan

+1

'try-catch'用於異常處理。不適用於條件檢查 – Jens

+0

相關閱讀:http://stackoverflow.com/questions/99683/which-and-why-do-you-prefer-exceptions-or-return-codes – Thilo

回答

2

我想這個問題太籠統了,但從我的角度來看,try...catch塊只能在exceptional的情況下使用,那些你並不真正期望發生的情況,但是應用程序可以從這些情況中恢復。 If-else是一個完全正常的塊,可讓您的程序轉到兩個不同的方向。

0

使用try-catch而不是if-else你真的不應該交替使用它們。

try/catch子句用於出錯的東西,這些東西出於您的控制而不是正常的程序流程。例如,試圖寫入文件並且文件系統已滿?這種情況通常應該用try/catch來處理。

if-else子句應該用在正常流程和普通錯誤檢查中。那麼,例如,用戶無法填充所需的輸入字段?對此使用if,而不是try/catch

2

如果else語句是評估布爾表達式,比如,

if(isWeekday){ 
    return "[email protected]:00AM"; 
} 
else{ 
    return "[email protected]:00AM"; 

你會使用如果你知道你有數據,當你可以很容易地計算一個布爾表達式else語句。有時候,你並不確定你在處理什麼,並可能會遇到錯誤,試圖解決它。在這種情況下,你可以使用try catch。

try{ 
    Scanner data = new Scanner(new File("data.dat")); 
} catch (IOException e){ 
    e.printStackTrace(); 
} 

在這種情況下,您無法真正確定您想從甚至存在數據的文件,因此您無法對其執行任何合理的計算。

0

java中,當代碼有可能引發需要交付的異常時,您使用try-catch語句。運行try-catch中的邏輯,直至找到異常,然後邏輯移至捕獲箱,您可以在其中處理異常。

try{ 
    //Exception prone logic 
}catch(Exception e){ 
    //handle the exception here 
} 

if-else語句是其評估一個布爾表達式它指示程序流要麼進入的代碼,如果塊或代碼

if(i == 0){ 
    //i is equal to 0 
}else{ 
    //i is not equal to 0 
} 
相關問題