Java入門筆記5_異常

來源:互聯網
上載者:User
1. 異常/錯誤
1.1 異常處理的基本結構
異常處理的基本結構如下:
try {
someReallyExceptionalMethod();
} catch (NullPointerException n) { // a subclass of RuntimeException
. . .
} catch (RuntimeException r) { // a subclass of Exception
. . .
} catch (IOException i) { // a subclass of Exception
. . .
} catch (MyFirstException m) { // our subclass of Exception
. . .
} catch (Exception e) { // a subclass of Throwable
. . .
} catch (Throwable t) {
. . . // Errors, plus anything not caught above are caught here
} finally {…}
Java中異常和錯誤類都是從Throwable類中繼承下來的,即Throwable類有兩個子類:Error類及Exception類,Error類的執行個體是Java運行環境的內部錯誤,這些錯誤都是非常少及非常致命的,我們不能或者很少能對這些錯誤作出處理,或者捕獲這些錯誤。
而Exception類可以分為二類,一種是運行時exceptions(Runtime exceptions)如SecurityException,ArrayIndexOutofBounds,NullPointerException等;另一種是除此之外的,如EOFException等。在Exception類階層上,越是上層的Exception類,就越具有一般性,而越下面的Exception就越具有針對性。在多數Exception類是java.lang包中的一部分,其它一些存在於其它的包中。
一般來說在將可能出錯的代碼放入try塊中,而在catch中捕獲可能的錯誤,一般從具體的錯誤開始,一直Throwable,而在finally中入些錯誤是否發生都需處理的代碼,如退出迴圈,釋放資源等。
1.2 聲明可能產生異常的方法
在聲明方法時可以加上關鍵字throws,用以說明該方法可能產生某個或者某些異常,如:
public boolean myOtherMethod (int x, int y)
throws AnException, AnotherExeption, AThirdException {
...}
有了這樣的聲明後,其它使用該方法的地方最好使用try…catch來處理該方法指定的異常。
1.3 建立自己的異常類
自己定義的異常類應從其它的異常類中繼承下來,最好找一個接近的異常類來繼承,如定義檔案格式錯誤的異常類,最好從IOException繼承。如果找不到接近的異常類繼承,那麼就直接從Exception類繼承,因為它是所有異常類的鼻祖,以下是一個簡單的自訂異常類:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.