1. 程式人生 > >檢查異常和未檢查異常不同之處

檢查異常和未檢查異常不同之處

問題1:上面的程式能否編譯通過?並說明理由。
解答:能編譯通過。分析:按照一般常理,定義doSomething方法是定義了ArithmeticException異常,在main方法裡 裡面呼叫了該方法。那麼應當繼續丟擲或者捕獲一下。但是ArithmeticException異常是繼承RuntimeException執行時異常。 java裡面異常分為兩大類:checkedexception(檢查異常)和unchecked exception(未檢
查異常),對於未檢查異常也叫RuntimeException(執行時異常),對於執行時異常,java編譯器不要求你一定要把它捕獲或者一定要繼續丟擲,但是對checkedexception(檢查異常)要求你必須要在方法裡面或者捕獲或者繼續丟擲.

問題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捕獲
注意,對於檢查的異常必須處理,或者必須捕獲或者必須丟擲