Java異常體系非正常停止和分類
一、異常概念
異常,就是不正常的意思。在生活中:醫(yī)生說,你的身體某個部位有異常,該部位和正常相比有點(diǎn)不同,該部位的功能將受影響.在程序中的意思就是:
- 異常 :指的是程序在執(zhí)行過程中,出現(xiàn)的非正常的情況,最終會導(dǎo)致JVM的非正常停止。
在Java等面向?qū)ο蟮木幊陶Z言中,異常本身是一個類,產(chǎn)生異常就是創(chuàng)建異常對象并拋出了一個異常對象。Java處理異常的方式是中斷處理。
異常指的并不是語法錯誤,語法錯了,編譯不通過,不會產(chǎn)生字節(jié)碼文件,根本不能運(yùn)行.
二、異常體系
異常機(jī)制其實(shí)是幫助我們找到程序中的問題,異常的根類是java.lang.Throwable
,其下有兩個子類:java.lang.Error
與java.lang.Exception
,平常所說的異常指java.lang.Exception
。
Throwable體系:
- Error:嚴(yán)重錯誤Error,無法通過處理的錯誤,只能事先避免,好比絕癥。
- Exception:表示異常,異常產(chǎn)生后程序員可以通過代碼的方式糾正,使程序繼續(xù)運(yùn)行,是必須要處理的。好比感冒、闌尾炎。
Throwable中的常用方法:
public void printStackTrace()
:打印異常的詳細(xì)信息。
包含了異常的類型,異常的原因,還包括異常出現(xiàn)的位置,在開發(fā)和調(diào)試階段,都得使用printStackTrace。
public String getMessage()
:獲取發(fā)生異常的原因。
提示給用戶的時候,就提示錯誤原因。
public String toString()
:獲取異常的類型和異常描述信息(不用)。
出現(xiàn)異常,不要緊張,把異常的簡單類名,拷貝到API中去查。
三、異常分類
我們平常說的異常就是指Exception,因?yàn)檫@類異常一旦出現(xiàn),我們就要對代碼進(jìn)行更正,修復(fù)程序。 異常(Exception)的分類:根據(jù)在編譯時期還是運(yùn)行時期去檢查異常?
- 編譯時期異常:checked異常。在編譯時期,就會檢查,如果沒有處理異常,則編譯失敗。(如日期格式化異常)
- 運(yùn)行時期異常:runtime異常。在運(yùn)行時期,檢查異常.在編譯時期,運(yùn)行異常不會編譯器檢測(不報(bào)錯)。(如數(shù)學(xué)異常)
四、異常的產(chǎn)生過程解析
先運(yùn)行下面的程序,程序會產(chǎn)生一個數(shù)組索引越界異常ArrayIndexOfBoundsException。我們通過圖解來解析下異常產(chǎn)生的過程。 工具類
public class ArrayTools { // 對給定的數(shù)組通過給定的角標(biāo)獲取元素。 public static int getElement(int[] arr, int index) { int element = arr[index]; return element; } }
測試類:
public class ExceptionDemo { public static void main(String[] args) { int[] arr = { 34, 12, 67 }; intnum = ArrayTools.getElement(arr, 4) System.out.println("num=" + num); System.out.println("over"); } }
上述程序執(zhí)行過程圖解:
到此這篇關(guān)于Java異常體系非正常停止和分類的文章就介紹到這了,更多相關(guān)Java異常體系 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
教你一步到位部署運(yùn)行MyBatis3源碼(保姆級)
一個框架的運(yùn)行流程從最簡單的一個helloworld來看其源碼就能了解到框架的原理是什么,這篇文章主要給大家介紹了關(guān)于如何一步到位部署運(yùn)行MyBatis3源碼的相關(guān)資料,需要的朋友可以參考下2022-06-06