【前言】中國達人秀中有個小孩子唱的memory,好聽~
【link】http://lukuijun.javaeye.com/blog/340500 (這個blog中,有很多對基本概念的講解,有空再去看看)
問題1:上面的程序能否編譯通過?並說明理由。
解答:能編譯通過。分析:按照一般常理,定義doSomething方法是定義了ArithmeticException異常,在main方法裏裏面調用了該方法。那麼應當繼續拋出或者捕獲一下。但是ArithmeticException異常是繼承RuntimeException運行時異常。java裏面異常分爲兩大類:checked exception(檢查異常)和unchecked exception(未檢
查異常),對於未檢查異常也叫RuntimeException(運行時異常),對於運行時異常,java編譯器不要求你一定要把它捕獲或者一定要繼續拋出,但是對checked exception(檢查異常)要求你必須要在方法裏面或者捕獲或者繼續拋出.
問題2:上面的程序將ArithmeticException改爲IOException能否編譯通過?並說明理由。
解答:不能編譯通過。分析:IOException extends Exception 是屬於checked exception ,必須進行處理,或者必須捕獲或者必須拋出
總結:java中異常分爲兩類:checked exception(檢查異常)和unchecked exception(未檢查異常):
對於未檢查異常也叫RuntimeException(運行時異常).
對未檢查的異常(unchecked exception )的幾種處理方式:
1、捕獲
2、繼續拋出
3、不處理
對檢查的異常(checked exception,除了RuntimeException,其他的異常都是checked exception )的幾種處理方式:
1、繼續拋出,消極的方法,一直可以拋到java虛擬機來處理
2、用try...catch捕獲
注意,對於檢查的異常必須處理,或者必須捕獲或者必須拋出