1. 程式人生 > >java學習——關於搜尋異常處理的總結

java學習——關於搜尋異常處理的總結

  根據網上的資料可以知道,異常處理是為了檢測到程式執行中發生的非正常情況的檢測而設立的一種機制,異常的英文單詞是exception,字面翻譯就是“意外、例外”的意思,也就是非正常情況。關於平常我們經常遇到的一些異常有:使用空的引用、陣列下標越界、記憶體溢位錯誤等,這些異常如果不加以解決的話會造成程式不能正常執行,背離了我們設計程式的本圖。人並不能夠完全的避免錯誤,在課上聽老師講一個阿波羅十三號飛行失敗的例子是由於一個簡單的異常引發的,一個簡簡單單的異常就能夠導致一場災難的發生,聽起來似乎不可思議,但這是在現實中發生的事情。所以,在java中設立的異常機制大概就是為我們檢測,修正這些錯誤而設立的把,畢竟人非完人,每個人都有犯錯誤的時候,什麼時候犯了什麼錯誤我們可能並不太清楚,就連設計飛船程式的那些頂尖高手都有可能犯錯,更何況現在的我們呢?

  Java中定義了一些關於異常的型別:有的是Error,這是一種無法被處理的錯誤,一旦發生,一般都是引起程式整個死掉的結果。

下面是轉載海子的所總結的資訊:

  Exception,也就是我們經常見到的一些異常情況,比如NullPointerException、IndexOutOfBoundsException,這些異常是我們可以處理的異常。

  Exception類的異常包括checked exception和unchecked exception(unchecked exception也稱執行時異常RuntimeException,當然這裡的執行時異常並不是前面我所說的執行期間的異常,只是Java中用執行時異常這個術語來表示,Exception類的異常都是在執行期間發生的)。

  

  nchecked exception(非檢查異常),也稱執行時異常(RuntimeException),比如常見的NullPointerException、IndexOutOfBoundsException。對於執行時異常,java編譯器不要求必須進行異常捕獲處理或者丟擲宣告,由程式設計師自行決定。

  checked exception(檢查異常),也稱非執行時異常(執行時異常以外的異常就是非執行時異常),java編譯器強制程式設計師必須進行捕獲處理,比如常見的IOExeption和SQLException。對於非執行時異常如果不進行捕獲或者丟擲宣告處理,編譯都不會通過。

在java中要處理異常的話是採用 try catch 和fianlly的形式。

 

java中異常機制的應用格式:

 try關鍵字用來包圍可能會出現異常的邏輯程式碼,它單獨無法使用,必須配合catch或者finally使用。Java編譯器允許的組合使用形式只有以下三種形式:

  try...catch...;       try....finally......;    try....catch...finally...

  當然catch塊可以有多個,注意try塊只能有一個,finally塊是可選的(但是最多隻能有一個finally塊)。

 

關於自定義異常類:

  繼承Exception就可以自定義一個自己需要的異常類了,同樣地還可以繼承RunntimeException

 

異常丟擲及其捕捉:

  在try過程中,用throw欄位來丟擲一個異常,並在後續的catch中看是否有捕捉到相應的異常,finally部分一般都會被執行,無論是否有捕捉到異常,這裡總會被處理,值得注意的是,如果在catch到一個異常的過程中呼叫了System.exit(0)的話,這樣finally是不會被執行的。關於無法catch被捕捉到的異常處理一般是在finally中定義的。