異常的概述和分類

異常概述

異常(Exception)就是Java程序在運行過程中出現(xiàn)的錯誤,程序編譯通過并不代表著在運行時不會出錯,例如下面代碼:

public class ExceptionTest01 {

? ? publicstaticvoidmain(String[] args){

? ? ? ? int a = 1024;

? ? ? ? int b = 0;

? ? ? ? int c = a/b;? ?

? ? ? ? //下面的這個代碼不會執(zhí)行? ? ? ? System.out.println("monkey1024");? ?

? ? }

}


上面程序雖然編譯能夠通過,但是在運行時將會報出ArithmeticException: / by zero。

0是不能當(dāng)做除數(shù)的。通過這個異常提示信息可以快速的知道程序的問題,有助于開發(fā)者編寫出更加健壯的程序,這是異常最主要的作用。

將上面程序修改一下

public class ExceptionTest01 {

? ? publicstaticvoidmain(String[] args){

? ? ? ? int a = 1024;

? ? ? ? int b = 0;

? ? ? ? if(b == 0){

? ? ? ? ? ? System.out.println("除數(shù)不能是0");

? ? ? ? }else{

? ? ? ? ? ? int c = a/b;

? ? ? ? }

? ? }

}


異常的分類

異常主要分為:Error、一般性異常、RuntimeException

Error:如果程序出現(xiàn)了Error,那么將無法恢復(fù),只能重新啟動程序,最典型的Error的異常是:OutOfMemoryError

一般性異常(編譯時異常):出現(xiàn)了這種異常必須在程序里面顯示的處理,否則程序無法編譯通過

RuntimeException(運行時異常):此種異??梢圆挥蔑@示的處理,例如被0除異常,java沒有要求我們一定要處理。


所有異常的祖先類是Throwable,這個類在java.lang包下面。

JVM是如何處理異常的

main方法自己將該問題處理,然后繼續(xù)運行

自己沒有針對的處理方式,只有交給調(diào)用main的jvm來處理,jvm有一個默認(rèn)的異常處理機(jī)制。例如上面出現(xiàn)的ArithmeticException,jvm在控制臺里面打印出來了異常信息。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 異常概述 異常(Exception)就是Java程序在運行過程中出現(xiàn)的錯誤,程序編譯通過并不代表著在運行時不會出錯...
    惡心_3da6閱讀 837評論 0 0
  • 本篇文章原文參考異常的概述和分類 – 小猴子monkey1024的Java教程 異常概述 異常(Exception...
    java萌新小白閱讀 142評論 0 0
  • 異常概述 異常(Exception)就是Java程序在運行過程中出現(xiàn)的錯誤,程序編譯通過并不代表著在運行時不會出錯...
    江北執(zhí)_閱讀 234評論 0 0
  • 程序的問題 嚴(yán)重問題:Error,比如內(nèi)存溢出,不處理,因為沒辦法處理 問題:Exception 編譯期問題 不...
    Freeze_0e4d閱讀 451評論 0 0
  • 八、深入理解java異常處理機(jī)制 引子try…catch…finally恐怕是大家再熟悉不過的語句了, 你的答案是...
    壹點零閱讀 1,730評論 0 0

友情鏈接更多精彩內(nèi)容