如果总是少捕获异常,可以尝试Exception类捕获所有的异常。那么,这个技术有什么好处和缺点?
好处就是:不管发生什么异常,都能进入Exception catch块儿,这样,程序都不崩溃。
缺点就是:不能根据特定的异常做特定的处理。例如,对于以下例子,我们可以用Exception来捕获所有的异常,从而达到程序不崩溃的目的。因为Exception是所有其他异常的父类。
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("优雅结束");
}
}
输出结果:
java.lang.NumberFormatException: For input string: "abc"
优雅结束
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("优雅结束");
}
}
输出结果:
java.lang.ArithemticException: /by zero
优雅结束
虽然Exception能够捕获所有异常,但是并不能根据特定的 异常做 特定处理。这种粗放的对待所有异常的方式在实际中效率并不高,所以实际情形中,一般选择把Exception作为其他异常处理的补充方案,两者结合使用,以保证程序不会崩溃。 |
|