我们这一章节来讨论一下捕获所有异常。
其实捕获所有异常非常简单,只需要直接catch Exception就可以了。
public class Test {
public static void main(String[] args) {
try {
throw new Exception("cause");
} catch (Exception e) {
}
}
}
但是在复杂的代码里面很可能会出现很多的异常,因此都放在一个代码块里面就显得不合适。
我们自定义或者采用系统定义的基于Exception的子类的异常,都需要放到Exception前面,不然会报错。
package com.ray.ch10;
public class Test {
public static void main(String[] args) {
try {
throw new SimpleException("cause");
} catch (SimpleException e) {
} catch (Exception e) {
}
// catch (SimpleException ex) {//error
//
// }
}
}
class SimpleException extends Exception {
public SimpleException(String msg) {
super(msg);
}
}
从上面的代码可以看到,如果我们把SimpleException放到Exception后面,就会抛异常。
下面演示一下异常常用的一些方法。
package com.ray.ch10;
public class Test {
public static void main(String[] args) {
try {
throw new Exception("cause");
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
System.out.println(e.getLocalizedMessage());
e.printStackTrace(System.out);
}
}
}
输出:
cause
cause
java.lang.Exception: cause
at com.ray.ch10.Test.main(Test.java:6)
java.lang.Exception: cause
at com.ray.ch10.Test.main(Test.java:6)
前面两个方法主要得到我们放置的信息,最后的那个方法主要改变输出流的方式和位置。
总结:我们这一章节主要讲述了捕获所有异常,以及基于Exception的异常捕捉时放置的位置。
这一章节就到这里,谢谢。
-----------------------------------