用Exception类捕获所有异常的技术是怎么用的
用Exception类捕获所有异常
马克-to-win:注意,一个事实是:Exception类是所有其他异常类的父类,所以Exception类能捕获所有的异常。马克-to-win:问题是用Exception来捕获所有的异常,这个技术有什么好处和缺点?好处就是:不管发生什么异常,都能进入Exception catch块儿,这样,程序都不崩溃。马克-to-win:缺点就是:不能根据特定的异常做特定的处理。马克-to-win:比如,对于以上例子,我们可以用以下的技术,Exception来捕获所有的异常,都可以达到程序不崩溃的目的。马克-to-win:因为Exception是所有其他异常的父类。
马克-to-win:马克 java社区:防盗版实名手机尾号: 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:优雅结束");
}
}
输出结果:
java.lang.NumberFormatException: For input string: "abc"
马克-to-win:优雅结束
例: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:优雅结束");
}
}
输出结果:
java.lang.ArithmeticException: / by zero
马克-to-win:优雅结束
马克-to-win:注意Exception虽然能够捕获所有的异常,使程序不崩溃(“马克-to-win:优雅结束”可以被打印出来)。马克-to-win:但是它不能像上一小节的多重捕获一样,根据特定的异常做特定的处理。马克-to-win:所以我们需要把这两种技术结合在一起。见下例:
例: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("输入参数必须为整数!");
}catch(Exception e){
System.out.println("如有捕获不到的异常,我来! "+e);
}
System.out.println("马克-to-win:优雅结束");
}
}
输出结果:
如有捕获不到的异常,我来! java.lang.ArithmeticException: / by zero
马克-to-win:优雅结束