第十章 通过异常处理错误

960786-20160809123812621-1156316153.png

一、基本异常

  1. 异常参数
    (1)和其他Java对象一样,可以使用new从heap产生出一个异常对象
    (2)所有的标准异常都有两个构造参数:第一个是default构造函数,第二个可以接受字符串参数,允许你将相关信息置于异常之中.此外,这些子类很可能有与其相关联的 cause, 因此也应有两个构造方法,一个带 Throwable (cause),一个带 String(详细消息)和 Throwable (cause)。
    (3)在版本 1.4 中还引入了 getStackTrace() 方法,它允许通过各种形式的 printStackTrace() 方法编程访问堆栈跟踪信息,这些信息以前只能以文本形式使用。此信息已经添加到该类的序列化表示形式,因此 getStackTrace 和 printStackTrace 将可在反序列化时获得的 throwable 上正确操作。

  2. 异常的捕捉和处理
    (1)try模块捕捉异常
    (2)紧接try的catch模块处理异常

  3. 编写自己的异常类
    (1)如果要编写自己的异常类,一定得继承某个既有的异常型别,这些子类很可能有与其相关联的 cause,因此也应有两个构造方法,一个带 Throwable (cause),一个 带 String(详细消息)和 Throwable (cause)。在版本 1.4 中还引入了 getStackTrace() 方法,它允许通过各种形式的 printStackTrace() 方法编程访问堆栈 踪信息,这些信息以前只能以文本形式使用。此信息已经添加到该类的序列化表示形式,因此 getStackTrace 和 printStackTrace 将可在反序列化时获得 的throwable上正确操作。
    如下为内置IO异常的源码:

    public class IOException extends Exception {
    static final long serialVersionUID = 7818375828146090155L;
    public IOException() {
    super();
    }
    public IOException(String message) {
    super(message);
    }
    public IOException(String message, Throwable cause) {
    super(message, cause);
    }
    public IOException(Throwable cause) {
    super(cause);
    }
    }

(2)Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地, 只有此类或其子类之一才可以是 catch 子句中的参数类型。
(3)所有的异常类都继承自Exception,所有的错误类都继承自Error类(我们只关注异常)

  1. 异常规格
    (1)异常规格是在关键字throws之后接一连串可能引发的异常型别。
    (2)例如:void method() throws Exception_1,Exception_2,Exception_3;
  2. 捕捉所有异常
    (1)可以使用java.lang.Exception捕捉所有异常,但该类是型别是所有重要异常类的基类,因此无法从中获取得到太多特定信息。不过可以调用一些源于Thorwable (Throwable 类是 Java 语言中所有错误或异常的超类)的函数。
  3. 重掷异常
    (1)实例如下:

    catch(Exceptiosn e){
    throw e;
    }

二、Java标准异常

  1. 运行时异常的特殊情况
    (1)你无法捕捉的错误(如:你的函数收到客户端传来的一个null reference)
    (2)身为程序员的你应该在自己的程序代码中检查的错误(如:ArrayIndexOutOfBound Exception)
  2. 以finally进行清理
    (1)无论try block是否掷出异常,finally语句都会执行其子句

三、异常限制

四、构造函数

五、异常的匹配

  1. 异常会被它所吻合的第一个catch子句捕捉过去

六、异常的使用原则

  1. 修正问题,并在此调用引发异常的那个函数
  2. 暂时解决问题,不再尝试执行该函数,转而继续程序的执行
  3. 计算出某个可替代结果,用来替代函数原本的值
  4. 终止程序
  5. 进行简化
  6. 让程序库和程序更安全。

七、总结

暂且当做对异常机制的简单了解吧。

转载于:https://www.cnblogs.com/realsoul/p/5752794.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值