Java基礎學習(四)異常 2019 7 1

2021-09-24 21:37:21 字數 1686 閱讀 4576

異常是指由於程式中的錯誤而導致正常的程式流程中斷的一種事件。

1.沒有錯誤處理的程式:

2.以常規方法處理錯誤:

openfiles;

if (thefilesopen)

else  errorcode=-3;

}else errorcode=-4 ;

}else errorcode=-5; 

以常規方法處理錯誤存在的問題:

觀察前面的程式,大家會發現大部分精力花在出錯處理上了

只把能夠想到的錯誤考慮到,對以外的情況無法處理

程式可讀性差,大量的錯誤處理**混雜在程式中

出錯返回資訊量太少,無法更確切的了解錯誤狀況或原因

3.用異常的形式處理錯誤:

catch(fileopenfailed)        

catch(sizedeterminefailed)        

catch(memoryallocatefailed)    

catch(readfailed)            

catch(fileclosefailed)        

finally                

}異常機制的優點:

把錯誤處理**從常規**中分離出來

按錯誤型別和差別分組(類exception,派生)

對無法**的錯誤的捕獲和處理(基類)

克服了傳統方法的錯誤資訊有限的問題(getmessage)

把錯誤傳播給呼叫堆疊(比較:全域性變數,返回值)

什麼情況下使用異常機制?

當方法因為自身無法控制的原因而不能完成其任務

(檔案不存在,網路連線無法建立……

處理在方法、類庫、類中丟擲的異常

( 如fileinputstream.read產生ioexception

在大的專案中採用統一的方式處理錯誤時

( 如編寫乙個文字處理器

異常應該是不經常發生但卻可能發生的故障

(一定發生的事件不應該用異常機制來處理

異常處理用於使系統從故障中恢復

( 提示資訊/不產生無效的結果/釋放資源

異常機制的關鍵步驟

try  

定義可能產生異常的**段

catch (etype e)

用於捕獲乙個異常

finally

用於做統一的事後處理,如釋放資源

throw e; 

用於丟擲乙個異常

throws etype1, etype2 ……

用於宣告方法可能丟擲的異常型別

Java基礎學習 異常

throwable異常父類下分為error錯誤跟exception異常 error一般是虛擬機器中的錯誤。程式中是修改不了的。exception異常又分為執行時異常 runtimeexception 編譯異常 ioexception,sqlexception等 大部分自定義異常都是編譯異常 1 宣告...

java學習 異常

1.如果類的方法定義時使用throws宣告了異常,那麼該方法被呼叫時必須捕獲這個異常 class test public void devide throws exception 2.exception 是throwable的子類,我們在程式中也可以定義自己的異常,並在程式中throw丟擲 3.乙個...

Java異常學習

1 三種型別異常 checked exception unchecked exception runtime exception error 2 五個關鍵字 try catch finally throw throws 3 使用try finally try catch finally 那什麼時候使...