处理可能发生的异常
什么是異常?
異常指的時(shí)程序在【編譯】和【運(yùn)行時(shí)】的一些不正常的狀況。 Java的工程師其實(shí)早就想到可能會(huì)出現(xiàn)這些問題,他們把常見的問題寫成類。 當(dāng)我們出現(xiàn)這些異常時(shí),可以根據(jù)API中去查找這些異常產(chǎn)生的原因。
ArrayIndexOutOfBoundsException: 數(shù)組索引越界異常
NullPointerException: 空指針異常
…
異常的體系結(jié)構(gòu)?
異常的根類Throwable,它下面有兩個(gè)子類Error和Exception
Throwable
– Error: 非常嚴(yán)重的問題(錯(cuò)誤,不需要解決)
– Exception: 表示異常(可以解決)
–Exception的直接子類:編譯時(shí)異常,在編譯時(shí)給出錯(cuò)誤提示
–RuntimeException的子類:運(yùn)行時(shí)異常,在運(yùn)行時(shí)打印在控制臺(tái)(異常信息)
如何處理異常?
3.1:不做任何處理,就是交給JVM處理
特點(diǎn):直接終止程序運(yùn)行,把異常信息打印在控制臺(tái)
3.2:使用 try … catch 處理:
特點(diǎn):把可能出現(xiàn)異常的代碼包裹起來,即使有異常產(chǎn)生,【代碼還能繼續(xù)執(zhí)行】
try{
//有可能出現(xiàn)異常的代碼
}catch(異常類1 e1){
//如果try有異常產(chǎn)生,就會(huì)被catch捕獲到,就執(zhí)行catch里面的代碼
}catch(異常類2 e2){
…
}catch(Exception e3){
//不管try里面有什么異常,這里都可以捕獲
}finally{
//不管前面異常是否產(chǎn)生,finally里面的代碼都回執(zhí)行
}
3.3:使用 throws 聲明異常:
//在寫一個(gè)方法時(shí),方法中可能產(chǎn)生異常,需要使用throws聲明。
public static void show(String s) throws 異常類{
//在方法中,可能由于調(diào)用者傳遞的參數(shù)不正確,導(dǎo)致代碼出現(xiàn)異常。
}
4.Throwable的方法 【異常對(duì)象為 上面第3點(diǎn)的 e】
Throwable類中提供了一些方法,所有的異常對(duì)象都能調(diào)用。
public String toString()
把異常對(duì)象轉(zhuǎn)換為字符串,有 “異常常類名:異常的解釋”
public String getMessage()
獲取異常對(duì)象的解釋(消息),就是異常信息”:"后面的一部分
public void void printStackTrace()
打印異常的所有信息,包含異常的類名+異常的解釋(消息)+異常的位置
總結(jié)
- 上一篇: linux编程c语言怎么保存(linux
- 下一篇: 单双列集合总述