异常处理理论上由两种模型:1、终止模型:错误非常关键,一旦发生,程序不能在继续执行下去。无法挽回了。
2、恢复模型:异常处理的工作是恢复程序的工作。然后尝试重新调用出错的方法。(不推荐,增加了过多的耦合,不容易维护)
创建自定义异常
必须从已有的异常类继承。
重新抛出异常:
try{ m(); } catch(Exception e){ throw (Exception)e.fillInStackTrace();//m()中的异常发生地将被这边新的异常发生地取代,异常栈轨迹中将不会存在捕获的这个异常的栈轨迹(抛出的是相同异常的条件下) }
在捕获异常后抛出另一种异常时,捕获的的异常的栈轨迹将会被取代,与fillInStackTrace()效果类似。
异常链:常常会想要在捕获一个异常后抛出另一个异常,并且希望把原始异常的信息保存下来,这被称为异常链。只有三种异常支持异常链(通过构造器的方式):Error、Exception和RuntimeException。其他的异常类通过initCause()方法而不是构造器(在异常的后面插入)。
Java标准异常
Throwable这个Java类被用来表示任何可以作为异常被抛出的类。Throwable对象可以被分为两种类型(指从Throwable继承而得到的类型):Error用来表示编译时和系统错误;Exception是可以被抛出的基本类型,在Java类库、用户方法以及运行时故障中都可能抛出Exception型异常。所以Java程序员关心的基本类型通常时Exception。
时间: 2024-11-10 11:29:01