有效处理 Java 异常三原则

有效处理 Java 异常三原则

java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。

 

异常之所以是一种强大的调试手段,在于其回答了以下三个问题:

  • 什么出了错?
  • 在哪出的错?
  • 为什么出错?

 

在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能你没有很好地使用它们。

 

有三个原则可以帮助你在调试过程中最大限度地使用好异常,这三个原则是:

  • 具体明确
  • 提早抛出
  • 延迟捕获

 

为了阐述有效异常处理的这三个原则,本文通过杜撰个人财务管理器类JCheckbook进行讨论,JCheckbook用于记录及追踪诸如存取款,票据开具之类的银行账户活动。

 

具体明确

 

Java定义了一个异常类的层次结构,其以Throwable开始,扩展出Error和Exception,而Exception又扩展出RuntimeException.如图1所示.

 

 

 

 

图1.Java异常层次结构

 

这四个类是泛化的,并不提供多少出错信息,虽然实例化这几个类是语法上合法的(如:new Throwable()),但是最好还是把它们当虚基类看,使用它们更加特化的子类。Java已经提供了大量异常子类,如需更加具体,你也可以定义自己的异常类。

 

例如:http://java.io package包中定义了Exception类的子类IOException,更加特确的是FileNotFoundException,EOFException和ObjectStreamException这些IOException的子类。

 

每一种都描述了一类特定的I/O错误:分别是文件丢失,异常文件结尾和错误的序列化对象流。异常越具体,我们的程序就能更好地回答”什么出了错”这个问题

 

捕获异常时尽量明确也很重要。

 

例如:JCheckbook可以通过重新询问用户文件名来处理FileNotFoundException,对于 EOFException,它可以根据异常抛出前读取的信息继续运行。

 

如果抛出的是ObjectStreamException,则程序应该提示用户文件已损坏,应当使用备份文件或者其他文件。

 

Java让明确捕获异常变得容易,因为我们可以对同一try块定义多个catch块,从而对每种异常分别进行恰当的处理。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值