两种处理异常的编程风格
LBYL: Look Before You Leap. 在操作之前就做充分的检查.
EAFP: It’s Easier to Ask Forgiveness than Permission. “事后获取原谅比事前获取许可更容易”. 也就是先操作, 遇到 问题再处理.
1.异常分类
Java中的异常对象都派生于Throwable类,所有的异常都是由Throwable继承而来,在下一层立即分解为Error和Exception两个分支。
Error类层次结构描述了Java运行时系统内部的错误和资源耗尽错误。
Exception类层次结构可分为两个分支,一个分支派生于RuntimeException,另一个分支包含其他异常。划分这两个分支的规则是:由程序错误导致的异常属于RuntimeException;程序本身没有问题,如像I/O错误这类问题导致的异常属于其他异常。
如果Java中的内置异常类不够满足需求,用户还可以创建自己的异常类。
2.自定义异常
class ExceptionDemo extends Exception {
public ExceptionDemo() {
super( "自定义异常,产生了" );
}
}
public class test {
public static void main(String[] args) throws ExceptionDemo {
throw new ExceptionDemo();
}
}