Java運行時異常和編譯時異常區別

轉載自:http://www.linuxidc.com/Linux/2009-11/23008.htm

Java中用2種方法處理異常:

1.在發生異常的地方直接處理;

2.將異常拋給調用者,讓調用者處理。

Java異常可分爲3種:

  (1)編譯時異常:Java.lang.Exception

  (2)運行期異常:Java.lang.RuntimeException

  (3)錯誤:Java.lang.Error

Java.lang.Exception和Java.lang.Error繼承自Java.lang.Throwable;

Java.lang.RuntimeException繼承自Java.lang.Exception.

編譯時異常: 程序正確,但因爲外在的環境條件不滿足引發。例如:用戶錯誤及I/O問題—-程序試圖打開一個並不存在的遠程Socket端口。這不是程序本身的邏輯錯誤,而很可能是遠程機器名字錯誤(用戶拼寫錯誤)。對商用軟件系統,程序開發者必須考慮並處理這個問題。Java編譯器強制要求處理這類異常,如果不捕獲這類異常,程序將不能被編譯。

運行期異常: 這意味着程序存在bug,如數組越界,0被除,入參不滿足規範…..這類異常需要更改程序來避免,Java編譯器強制要求處理這類異常。

    try {
            Connection con = dataSource.getConnection();
            System.out.println(con);
        } catch (SQLException e) {
            e.printStackTrace();
            //System.out.println(e);這個顯示的比上面的精簡
            throw new RuntimeException("數據庫連接異常");
        }

錯誤: 一般很少見,也很難通過程序解決。它可能源於程序的bug,但一般更可能源於環境問題,如內存耗盡。錯誤在程序中無須處理,而有運行環境處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章