Java异常处理

      Java的异常机制主要依赖try-catch-finallythrowsthrow五个关键字。throws  要在方法签名中使用,声明方法可能抛出的异常;throw抛出一个实际异常。

      Java将异常分为两种,checked异常(编译阶段)和runtime异常(运行阶段)。

异常继承关系


       error错误,一般指与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法恢复或不可捕捉,将导致应用中断,不应使用catch来捕获error对象。

      异常捕获时,要先捕获小异常,再捕获大异常,父类应排在子类异常后面。

      使用一个catch块捕获多种类型的异常时要注意:

①多种异常类型之间用竖线(|)隔开;

②异常变量有隐式final修饰,不能对其重新赋值。

访问异常信息

      所有异常对象都包含的常用方法:

getMessage():返回异常的详细描述字符串。

printStackTrace():将跟踪栈信息输出到标准错误输出。

printStackTrace(PrintStream s):将跟踪栈信息输出到指定输出流。

getStackTrace():返回异常的跟踪栈信息。

 

      Java程序执行try-catch块时遇到returnthrow语句会立即结束方法,但系统不会结束该方法,而是去找finally,如果没有finally,程序执行returnthrow,方法结束;如果有finally,系统执行finally,之后调回try-catch块的returnthrow,结束方法。如果finally中存在returnthrow将导致方法结束,不会跳回try-catch

catchthrow同时使用

      一个异常出现,单靠某个方法无法完全处理异常,需要几个方法同时协作处理异常。异常出现的当前方法中,程序只做部分处理,还需要再调用者中进行余下处理,所以应该再次抛出异常,使该方法的调用者也能捕获到异常。这时就需要catchthrow配合使用。

异常链

      捕获一个异常,然后抛出另一个异常,冰雹原始异常信息保存下来是一种经典的链式处理,也称“异常链”。

异常处理目标

①使程序代码混乱最小化;

②捕获并保留诊断信息;

③通知合适的人员;

④采用合适的方式结束异常活动。

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值