java 運行時異常與非運行時異常理解


所謂的異常就是阻止當前程序或方法繼續執行的問題。

java異常分為兩種:運行時異常(RuntimeException)和非運行時異常(CheckedException)也叫檢查式異常。

1.運行時異常是不需要捕獲的,程序員可以不去處理,當異常出現時,虛擬機會處理。常見的運行時異常有空指針異常。

我們常見的5中運行時異常:

     
    ClassCastException(類轉換異常)
    IndexOutOfBoundsException(數組越界)
    NullPointerException(空指針)
    ArrayStoreException(數據存儲異常,操作數組時類型不一致)
    還有IO操作的BufferOverflowException異常


具體可以參見java的API:http://docs.oracle.com/javase/7/docs/api/

2.非運行時異常就必須得捕獲了,否則編譯不過去,java編譯器要求程序員必須對這種異常進行catch,Java認為Checked異常都是可以被處理(修復)的異常,所以Java程序必須顯式處理Checked異常。

常見的非運行異常有io異常和sql異常。

     
    IOException、FileNotFoundExcetion 和SQLException


finally是異常處理工作的一部分,表示總是執行。一般finally寫的代碼語句就是流的關閉。也就是做了一項清理,工作清理工作對於我們來說是必不可少的,因為如果一些消耗資源的操作,比如IO,JDBC。如果我們用完以后沒有及時正確的關閉,那后果會很嚴重,這意味着內存泄露。(有人說過,對於資源的及時正確的清理是程序員的基本素質之一)

另外不得不說異常處理中的throws和throw的區別了。

1、throws出現在方法的聲明中,表示該方法可能會拋出的異常,允許throws后面跟着多個異常類型
2、throw出現在方法體中,用於拋出異常。當方法在執行過程中遇到異常情況時,將異常信息封裝為異常對象,然后throw。
---------------------
作者:艾倫藍
來源:CSDN
原文:https://blog.csdn.net/lan12334321234/article/details/70049446/
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM