首页
学习
活动
专区
圈层
工具
发布

我们来捋一捋JAVA的异常

三、异常体系

上图我们看出Throwable是异常的顶级类,Error和Exception是他的子类

Exception又分RuntimeException和非RuntimeException子类

六、责任归属

我们从责任角度看

1、Error属于JVM需要承担的责任

2、RuntimeException是程序应该承担的责任

3、非RuntimeException

 (CheckedException)可检查异常是JAVA编译器应该承担的责任

上面代码直观一点:

我们看到Error和RuntimeException编译器是不检查的,而CheckedExcepton异常编译器是检查的,也就是我们程序员是必须要捕获处理的。那怎么处理呢?

try-catch方式

用try-catch方式捕获这个异常,可以在catch代码段进行异常逻辑处理,这个就按照实际业务而定。如上图代码是FileNotFound异常,根据这个类型我们就知道是文件句柄不存在,那我们应该做哪些处理。如:提示一下用户该文件不存在

上抛异常方式

在复杂的业务中,我们的程序员自己写的模块,很有可能被其他程序员写的模块进行引用,为了能够让其他程序员知道我们模块的异常,并要他们要进行处理,我们就可以采用上抛异常方式

我们看一下上层调用的处理

我们看到上抛异常,是需要调用方进行处理的。那处理的方式是什么呢?其实就是上面讲的try-catch或继续上抛。

九、小疑惑

在捕获异常时,用到try-catch,会经常用到finally关键字,小伙伴应该都知道这个是保证代码一定会被执行,如:关闭JDBC链接、保证锁unlock等。那小伙伴们猜猜下面两段代码执行结果是什么?

代码一:

代码二:

小伙伴,可以把答案写在评论区中。谢谢!!!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/On7OGuiKM0DoK_bDwphb5tnw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券