1. 程式人生 > >使用try/catch和throws的原則和常見場景

使用try/catch和throws的原則和常見場景

        try/catch是java程式設計師經常用的程式塊,怎麼用,什麼時候catch異常,什麼時候丟擲異常?用不好,程式可能會有致命性錯誤。下面我們就來簡單的介紹一下。

使用的基本原則:

       對異常的處理,兩種方式,一是新增 throws exceptions,向上丟擲,交由方法的呼叫方處理該異常;二是使用try/catch塊,捕捉異常,自己處理。

       選擇哪種方式,取決於異常應該怎麼處理。

使用丟擲異常的情景主要有:

1. 異常必須由容器來處理,異常時容器做出不同處理的依據和觸發;

     例如:有事務處理的方法中,事務相關的邏輯必須丟擲異常,而不能捕獲異常,否則會導致事務不回滾。

2. 本地方法不知道如何處理,只有呼叫方才可能知道如何處理異常;

     例如:一些底層的方法,其可能出現多種異常,且呼叫方可能根據不同的異常做出不同的處理,只能丟擲異常,而且必須是具體的異常型別,而不能是籠統的Exception型別。

使用try/catch捕獲異常的情景主要有:

1. 程式塊中語句可能的異常不能引起其他邏輯中斷;

      例如:快取邏輯不能影響正常的邏輯執行,故快取邏輯應該放在try/catch塊中。

2. 必須對異常進行處理,否則會降低使用者使用體驗。

      例如:異常到了Controller層,若不處理則會返回404或500錯誤頁面,因此,必須使用try/catch處理各種異常。