1. 程式人生 > >Java學習---異常處理的學習

Java學習---異常處理的學習

沒有 splay finall dea 收集 lap img 常見 描述

基礎知識

任何一門計算機程序設計語言都包括有絕對正確和相對正確的語句。絕對正確: 指任何情況下, 程序都會按照流程正確執行;相對正確: 程序的運行受到運行環境的制約, 在這種情況下, 需要附加檢測和控制語句, 保證程序的健壯性。

在Java中, 通過面向對象的方法來處理程序錯誤,采用異常(Exception)處理機制來處理程序運行中的錯誤.將程序運行中的所有錯誤都看成一種異常, 通過對語句塊的檢測, 一個程序中所有的異常被收集起來放在程序的某一段中處理。如果發生了異常,則這個方法生成一個代表該異常的對象(包含了該異常的詳細信息),並把它交給Runtime系統, Runtime系統尋找相應的代碼來處理該異常。則生成異常對象並把它提交給運行時系統的過程被稱為拋棄(throw)異常。運行時系統在方法的調用棧中查找,從生成異常的方法開始進行回朔,直到找到包含相應異常處理的方法為止,這一個過程稱為捕獲(catch)一個異常。

程序中存在非法操作. 這種因為無意或粗心引起的錯誤稱為隱式異常, 常見的隱式異常可以通過java.lang包中的Throwable的子類Error來處理。程序員在程序中使用throw語言引起的異常. 這種事先考慮的異常稱為顯式異常, 可以通過java.lang包中的Throwable的子類Exception派生的子類生成.

在Java語言中, 大部分錯誤和異常都可以被拋出. 異常情況被分為異常類Exception和錯誤類Error, 其中錯誤類表示嚴重的錯誤, 直接由Java系統處理.錯誤和異常分為3類:

l 輸入錯誤: 主要指用戶輸入的數據格式, 沒有按規定的形式輸入

l 設備錯誤是不可預知的, 且不可避免

l 程序代碼出錯是因為程序設計和編寫時候出現的考慮不全面引起的

Java的異常處理是通過3個關鍵詞來實現的:try-catch-finally。用try來執行一段程序,如果出現異常,系統拋出(throws)一個異常,可以通過它的類型來捕捉(catch)並處理它,或最後(finally)由缺省處理器來處理。

技術分享圖片
 1 Try{
 2     exception_method;
 3 }catch(Exception1 e){
 4     dealWith1;
 5 }[catch(Exception2 e){
 6     dealWIth2;
 7 }][finally{
 8     method;
9 }] 10 在異常對象拋出時,使用到兩個關鍵字分別是:throws和throw,其中throw用於語句中拋出異常對象,例如: 11 Exception e = new Exception(“MyException”); 12 throw e; 13 14 throw new Exception(“MyException”); 15 throws用於描述在間接拋出異常類型。 16 public void MyException(int a, int b) throws Exception{ 17 }
View Code

Java學習---異常處理的學習