1. 程式人生 > >java 異常分類和處理機制

java 異常分類和處理機制

    一、背景介紹

       程式在執行過程中發生錯誤或異常情況是不可避免的,如果每一個執行時錯誤都由程式設計師手動控制和處理,其工作量是不可想象的。

     Java語言中的異常處理機制就解決的上述問題,把錯誤與異常的管理帶到了面向物件的世界

Java語言定義了很多異常類,將執行錯誤和異常的資訊和處理方法封裝在了異常類中,幫助程式設計師檢查和控制異常。即Java造好了工具,程式設計師只要學會使用工具。

二、java異常分類

Java語言按照錯誤嚴重性,從throwale根類衍生出Error和Exception兩大派系

Error(錯誤):程式在執行過程中所遇到的硬體或作業系統的錯誤。錯誤對程式而言是致命的,將導致程式無法執行。常見的錯誤有記憶體溢位,jvm

虛擬機器自身的非正常執行,calss檔案沒有主方法。程式本生是不能處理錯誤的,只能依靠外界干預。Error是系統內部的錯誤,由jvm丟擲,交給系統來處理。

EXCEPTION(異常):是程式正常執行中,可以預料的意外情況。比如資料庫連線中斷,空指標,陣列下標越界。異常出現可以導致程式非正常終止,也可以預先檢測,被捕獲處理掉,使程式繼續執行。

EXCEPTION(異常)按照性質,又分為編譯異常(可檢測)和執行時異常(不可檢測)。

編譯時異常:又叫可檢查異常,通常時由語法錯和環境因素(外部資源)造成的異常。比如輸入輸出異常IOException,資料庫操作SQLException。其特點是,Java語言強制要求捕獲和處理所有非執行時異常。通過行為規範,強化程式的健壯性和安全性。

執行時異常:又叫不檢查異常RuntimeException,這些異常一般是由程式邏輯錯誤引起的,即語義錯。比如算術異常,空指標異常NullPointerException,下標越界IndexOutOfBoundsException。執行時異常應該在程式測試期間被暴露出來,由程式設計師去除錯,而避免捕獲。

所以,java語言處理執行時錯誤有三種方式,

一是程式不能處理的錯誤,二是程式應該避免而可以不去捕獲的執行時異常,三是必須捕獲的非執行時異常。

三、java異常處理機制

java預設處理機制:

1丟擲異常

2終止程式

異常處理程式機制:

1丟擲異常

2try-catch-finally 捕獲和處理異常

當Java

程式執行到某個方法發生異常時,產生一個對應異常類物件,包含異常事件型別,發生異常是應用程式的狀態,和呼叫過程等資訊,然後丟擲,執行系統開始查詢有沒又匹配異常處理程式,麼有,就中斷程式,有就將控制權交個程式處理程式,處理異常。