二、異常處理
1、理解異常
程序在運(yùn)行過程中出現(xiàn)的問題稱為異常(Exception),出現(xiàn)異常時的處理叫異常處理
JAVA的異常分為:
? ? Error:java應(yīng)用程序本身無法恢復(fù)的嚴(yán)重錯誤,程序不需要捕獲、處理這些嚴(yán)重錯誤
? ? Exception:java程序拋出和處理的非嚴(yán)重異常,分為運(yùn)行時異常(RuntimeException)和檢查異常(CheckException),也稱非運(yùn)行時異常
所有的異常都繼承至java.lang.Throwable類
Throwable
? ? ---- Error
? ? ---- Exception?
? ? ? ? ---- RuntimeException
? ? ? ? ---- CheckException
2、Exception
需要程序員處理的,如果此類異常被捕獲,程序在運(yùn)行時是不會崩潰的,如果沒有捕獲(不做異常處理),可能導(dǎo)致整個程序運(yùn)行崩潰
Exception異常分為2類:
? ? 運(yùn)行時異常:正常編譯,但程序運(yùn)行時出的問題,又稱為非檢查異常
? ? 檢查異常:此異常是在編寫代碼時就會以紅色波浪線提示,需要做異常處理,又稱非運(yùn)行時異常
常見的運(yùn)行時異常:
java.lang.ArrayIndexOutOfBoundsException:數(shù)組的下標(biāo)越界異常
java.lang.ArithmeticException:數(shù)學(xué)運(yùn)算異常
java.lang.NullPointerException:空指針異常
java.lang.ClassCastException:類型轉(zhuǎn)換異常
java.lang.NumberFormatException:數(shù)字格式化異常
java.util.InputMismatchException:輸出信息類型不匹配異常
常見的檢查異常:
java.io.FileNotFoundException:文件找不到異常?
java.io.IOException:輸入輸出異常
java.lang.NoSuchMethodException:方法未找到異常
java.io.FileNotFoundException:文件找不到異常?
java.io.IOException:輸入輸出異常
java.lang.NoSuchMethodException:方法未找到異常
3、異常處理
異常處理的三種結(jié)構(gòu):
try{
? ? //可能出現(xiàn)異常語句塊
}catch(SomeException e){// 特指某些特定的異常
? ? //當(dāng)捕獲到SomeException類型的異常時執(zhí)行的語句塊,通常是打印該異常信息
}
catch語句可以多個,但如果是Exception類型來捕獲,必須為最后一個catch
如果try語句塊中的代碼沒有異常,則try語句塊執(zhí)行完畢后,catch中的語句塊不執(zhí)行;如果try語句塊有異常,則try語句塊中發(fā)生異常之后的代碼不執(zhí)行,而由相應(yīng)的catch語句進(jìn)行捕獲,catch中的代碼會執(zhí)行
? ? try…catch…finally
try {
? ? //可能拋出異常的語句塊
}catch(SomeException e){
? ? //當(dāng)捕獲到異常時運(yùn)行的語句塊
}finally {
? ? //不管是否發(fā)生異常都會執(zhí)行的語句塊
}
?