java —— 異常(二)

來源:互聯網
上載者:User

標籤:exce   資訊   lis   not   nbsp   message   結束   color   調用   

  上文主要說明了異常的產生、異常的捕獲、異常處理流程。程式中的異常是不可以避免的,那麼應該怎麼去處理異常尤為重要了。

處理異常的方式  1、只進行捕獲,不做任何處理

  

  當異常發生時,上述代碼對異常進行了捕獲,捕獲發生後進入catch子句,catch子句裡面沒有任何代碼,實際上異常並沒有得到處理,因此catch子句執行完成後,catch區段之後的代碼將“好像沒有發生過什麼似的”繼續執行。換句話說,方式1沒有對異常做任何應對,只是將它給(吞)了。這樣的做法很危險,因為後續程式可能就會遭遇失敗,由於缺少對上述異常的必要處理與記錄,直接導致我們定位錯誤非常困難。

  2、捕獲異常,簡單的列印

   

  e.printStackTrace()進行異常情況輸出,在調試可能會有一定的協助,但是調試階段結束後,就不利於程式的維護。更加安全有理的方式是,在螢幕上輸出了異常發生的位置與導致異常的原因,同時還將異常詳細資料輸出到了一個記錄檔。

public class ExceptionDemo {    public static void throwsTest(){        try {            Class.forName("java.util.List");        } catch (ClassNotFoundException e) {//異常處理            System.out.println("Class.forName() 類載入異常:" + e.getMessage());            logFile(nfe);                    }    }    public static void main(String[] args) {        throwsTest();    }}
  2、throws 異常  

    throws 在方法的聲明處使用,表示此方法不處理異常,所有的異常交給被調用處進行處理,而調用處也可繼續向上遞交異常。

public class ExceptionDemo {    public static void throwsTest() throws ClassNotFoundException{         Class.forName("java.util.List");    }    public static void main(String[] args) throws ClassNotFoundException {        throwsTest();    }}

  此處都沒有對異常進行處理,最終有 JVM 都異常處理,進行背景異常輸出。

  3、throw 異常

  throw 主要用於方法體之中,表示人為的拋出一個異常類的執行個體化對象,常用來拋出自訂的異常,與 throws 配合使用將異常交由調用者處理。     

  

  備忘:自訂異常的方式

      

   在正常使用的情況下,很少會定義自己的異常類,但是如果在學習架構,或者是你日後設計架構的時候都有可能定義許多屬於此架構的異常類。 

  上述的異常,最終的處理形式還是回到了方式2的處理規則上。進行錯誤資訊簡單輸出,完整資訊寫入記錄檔。

小結:

  不要推諉或延遲處理異常,盡量就地解決他們,就地解決最好,並且需要實實在在的進行處理,而不是只捕捉,不動作。

java —— 異常(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.