Java 基础之异常体系

Java作为类语言有着和C相似的异常处理体系,而Java中异常都是派生于Throwable,其结构如下图

在这里插入图片描述

  • Error 是错误
    • 栈内存溢出错误
    • 堆内存溢出错误

Error 类层次结构描述了 Java 运行时系统的内部错误和资源耗尽错误。 应用程序不应该抛出这种类型的对象。 如果出现了这样的内部错误, 除了通告给用户,并尽力使程序安全地终止之外, 再也无能为力了

  • Exception
    • RuntimeException(非受查异常):如果出现一定是你的问题
      • 错误的类型转换
      • 数组访问越界
      • 访问null
    • IOException(受查异常)
      • 文件尾部后面读取数据
      • 试图打开一个不存在的文件
      • 试图根据给定字符串查找Class对象

IOException,编译器会要求我们try catch 或throws处理,本质是客观因素造成的问题

实例try-catch-finally的执行过程

在这里插入图片描述

finally 里的return n 是注掉的

此时输出为:

执行了
3

小结:Class.forName(“”)会抛出异常,不执行下面语句跳转到catch代码块中,最后执行finally, 而finally 是在return返回值前执行的

实例-2

还是上图,但是把finally中的return打开

输出结果为:

执行了
4

小结:简单的记住,有finally 以finally中的return 为最终返回值

总结
当类中方法有try finally 时,在底层调用方法时,return 要等到try-finally整体执行结束才返回数据并杀死方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值