Java基础—重新抛出异常

206 篇文章 0 订阅
172 篇文章 0 订阅

重新抛出异常

在catch块内处理完后,可以重新抛出异常,异常可以是原来的,也可以是新建的,如下所示:

try{
    //可能触发异常的代码
}catch(NumberFormatException e){
    System.out.println("not valid number");
    throw new AppException("输入格式不正确", e);
}catch(Exception e){
    e.printStackTrace();
    throw e;
}

对于Exception,在打印出异常栈后,就通过throw e重新抛出了。

而对于NumberFormatException,重新抛出了一个AppException,当前Exception作为cause传递给了AppException,这样就形成了一个异常链,捕获到AppException的代码可以通过getCause()得到NumberFormatException。

为什么要重新抛出呢?因为当前代码不能够完全处理该异常,需要调用者进一步处理。

为什么要抛出一个新的异常呢?当然是因为当前异常不太合适。不合适可能是信息不够,需要补充一些新信息;还可能是过于细节,不便于调用者理解和使用,如果调用者对细节感兴趣,还可以继续通过getCause()获取到原始异常。

了解更多Java知识,点击下方链接和小编一起学习,Java资料以及学习笔记等你来嫖~

https://www.bilibili.com/video/BV1S14y1n7a9/?p=3&spm_id_from=pageDriver&vd_source=a7816e3b2a3a67ac39dc87f6bf92421cicon-default.png?t=M85Bhttps://www.bilibili.com/video/BV1S14y1n7a9/?p=3&spm_id_from=pageDriver&vd_source=a7816e3b2a3a67ac39dc87f6bf92421c

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值