异常--java
java默認(rèn)的異常處理機(jī)制
優(yōu)點(diǎn):發(fā)生異常后、會(huì)給出異常類型、異常提示信息、異常出現(xiàn)的位置
缺點(diǎn):出現(xiàn)異常后,后續(xù)語句不執(zhí)行了;提示信息太專業(yè),可讀性差
解決:try-catch-finally 處理異常;throws 拋出異常不處理,調(diào)用者處理
異常處理:try-catch-finally
package demo01;import java.util.Scanner;public class TestException {public static void main(String[] args) {Scanner input = new Scanner(System.in);//輸入總分try{System.out.println("請(qǐng)輸入總分");int sum = input.nextInt();System.out.println("請(qǐng)輸入人數(shù)");int count = input.nextInt();int result = sum/count;System.out.println("result="+result);}catch (Exception e){//System.out.println(e.toString());//System.out.println(e.getMessage());//by zeroSystem.err.println("請(qǐng)檢查人數(shù)是否為0,請(qǐng)檢查是否輸入了非數(shù)字內(nèi)容");//繼續(xù)向上拋//throw e;}System.out.println("11111111111");} }try-catch 執(zhí)行的情況
情況1:try塊中代碼沒有出現(xiàn)異常
不執(zhí)行catch塊代碼,執(zhí)行catch塊后的代碼
情況:2:try塊中代碼出現(xiàn)異常,catch中異常類型匹配(相同或者父類)
執(zhí)行catch塊代碼,執(zhí)行catch塊后面的代碼
情況3:try塊中代碼出現(xiàn)異常,catch中異常類型不匹配
不執(zhí)行catch塊代碼,不執(zhí)行catch塊后面的代碼,程序中會(huì)中斷執(zhí)行
注意:
1、出現(xiàn)異常后,java會(huì)生成相應(yīng)的異常對(duì)象java系統(tǒng),尋找匹配的catch塊,找到后將異常對(duì)象賦給catch塊異常參數(shù)
2、出現(xiàn)異常后,try塊中尚未執(zhí)行的語句不會(huì)執(zhí)行
3、出現(xiàn)異常后并處理后,catch塊后面的語句還會(huì)執(zhí)行
catch塊中如何處理異常
1、輸出用戶自定義異常信息
System.err.println("除數(shù)不能為零");
System.err.println("被除數(shù)和除數(shù)必須是整數(shù)");
2、調(diào)用異常對(duì)象的方法輸出異常信息
tostring()方法,顯示異常的類名和產(chǎn)生異常的原因
void printStackTace() 輸出異常的堆棧信息
String getMessage() 返回異常信息描述字符串,printStackTrace()信息一部分
3、繼續(xù)向上拋出異常
throw e
?
?
?
?
?
?
?
?
?
?
?
?
總結(jié)
- 上一篇: centos mysql 服务器_服务器
- 下一篇: JDBC练习五