用Exception類捕獲所有異常的技術(shù)是怎么用的
用Exception類捕獲所有異常
馬克-to-win:注意,一個事實是:Exception類是所有其他異常類的父類,所以Exception類能捕獲所有的異常。馬克-to-win:問題是用Exception來捕獲所有的異常,這個技術(shù)有什么好處和缺點?好處就是:不管發(fā)生什么異常,都能進入Exception catch塊兒,這樣,程序都不崩潰。馬克-to-win:缺點就是:不能根據(jù)特定的異常做特定的處理。馬克-to-win:比如,對于以上例子,我們可以用以下的技術(shù),Exception來捕獲所有的異常,都可以達到程序不崩潰的目的。馬克-to-win:因為Exception是所有其他異常的父類。
馬克-to-win:馬克 java社區(qū):防盜版實名手機尾號: 73203。
例:1.3.1-本章源碼
public class Test {
public static void main(String[] args) {
int arg1;
int result;
String s="abc";
// String s="12";
try {
arg1 = Integer.parseInt(s);
result = arg1 /0;
System.out.println("try中完成finish");
}
catch (Exception e) {
System.out.println(e);
}
System.out.println("馬克-to-win:優(yōu)雅結(jié)束");
}
}
輸出結(jié)果:
java.lang.NumberFormatException: For input string: "abc"
馬克-to-win:優(yōu)雅結(jié)束
例:1.3.2-本章源碼
public class Test {
public static void main(String[] args) {
int arg1;
int result;
// String s="abc";
String s="12";
try {
arg1 = Integer.parseInt(s);
result = arg1 /0;
System.out.println("try中完成finish");
}
catch (Exception e) {
System.out.println(e);
}
System.out.println("馬克-to-win:優(yōu)雅結(jié)束");
}
}
輸出結(jié)果:
java.lang.ArithmeticException: / by zero
馬克-to-win:優(yōu)雅結(jié)束
馬克-to-win:注意Exception雖然能夠捕獲所有的異常,使程序不崩潰(“馬克-to-win:優(yōu)雅結(jié)束”可以被打印出來)。馬克-to-win:但是它不能像上一小節(jié)的多重捕獲一樣,根據(jù)特定的異常做特定的處理。馬克-to-win:所以我們需要把這兩種技術(shù)結(jié)合在一起。見下例:
例:1.3.3-本章源碼
public class Test {
public static void main(String[] args) {
int arg1;
int result;
// String s="abc";
String s="12";
try {
arg1 = Integer.parseInt(s);
result = arg1 /0;
System.out.println("try中完成finish");
}
catch (NumberFormatException e) {
System.out.println("輸入?yún)?shù)必須為整數(shù)!");
}catch(Exception e){
System.out.println("如有捕獲不到的異常,我來! "+e);
}
System.out.println("馬克-to-win:優(yōu)雅結(jié)束");
}
}
輸出結(jié)果:
如有捕獲不到的異常,我來! java.lang.ArithmeticException: / by zero
馬克-to-win:優(yōu)雅結(jié)束