Java异常机制

一、异常机制引入

概念:Java异常是Java提供的用于处理程序中错误的一种机制。
1.错误(Error)
该类层次结构描述了Java运行时系统内部错误资源耗尽错误,总之是与Java虚拟机有关的运行错误。也是应用程序无法处理的。这些错误是不可查的,因为它们在应用程序的控制和处理能力之 外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在 Java中,错误通过Error的子类描述。一般不需要你关心。
2.异常(Exception)
处理过程:
(a).抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径并把异常对象提交给JRE。
(b).捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止。
总结:当异常发生时,运行某一部分代码,来减少异常的损失

二、异常的分类

Throwable类继承树
在这里插入图片描述
Throwable:父类
Error:错误:严重的,不可避免,无法处理
Exception:异常
RuntimeException的子类,即未检查异常。(可以避免,可处理可不处理)
非RuntimeException的子类,已检查异常。(不可以避免,必须处理)
如果一个程序可能发生已检查异常,而程序员未加处理,程序的编译出错。

常见异常
1.ArithmeticException(算术运算异常,如分母为0)
2.NullPointerException(空指针异常
3.ClassCastException(类型转换异常
4.ArrayIndexOutOfBoundsException(数组下标越界异常
5.NumberFormatException(数字格式异常,如字符串转整型包装类)

三、异常的处理

1.try-catch-finally语句块
在这里插入图片描述
注意:捕获多个异常时,从上到下的catch语句中,异常对象应该从小到大,即子类异常在前,父类异常在后。否则子类异常在下永远不可能执行到,编译时也会报错。

2.throws抛出
在方法声明后通过throws关键字直接抛出异常,main方法是直接抛给虚拟机,不建议让main方法直接抛出异常。一个方法后可以连续抛出多个异常,也成为异常链。
注意:在抛异常时,子类抛出的异常数量可以比父类多,但是子类抛出的异常不能跟父类异常同级别或者比父类异常级别高,但是可以是跟父类同级别的异常的子类异常。

四、自定义异常

继承Exception或者继承其子类,定义两个构造方法,一个无参构造方法,一个带有详细信息的构造方法。

五、Java的异常跟踪栈

除去第一行打印的自定义的提示信息之外的第一行是异常的类型和详细消息,之后的提示信息中含有确切代码行数的信息记录了所有的异常发生点,各行显示被调用方法中执行的停止位置。跟踪栈总是最内部的被调用方法逐渐上传知道外部业务操作的起点,通常就是main方法或者Thread的run方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值