java异常的处理机制_Java异常处理机制

什么是异常处理机制:

异常处理机制:

让程序发生异常时,按照代码预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常。

Java异常处理机制:

Java程序中产生异常(函数中语句执行引发/手动throw抛出),用一个对应类型的异常对象来封装异常,JRE就会试图寻找异常处理程序来处理异常。

Java异常分类:

Java异常类型的顶层父类为Throwable类,派生出Error类和Exception类。

**错误:**Error类以及他的子类的实例,代表了JVM本身的错误,错误不能通过代码处理。

**异常:**Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件,可以被Java异常处理机制使用,是异常处理的核心。9f81ce66b2b1b5878b223269c1375366.png

根据Javac对异常的处理要求,将异常分为两类:非检查异常和检查异常

1.非检查异常:Error和RuntimeException以及他们的子类。

javac在编译时,不会提示和发现这样的异常,不要求程序去处理这些异常。

这样的异常,我们写代码时可以处理(使用try-catch-finally),也可以不处理。

这样的异常,多半是代码写的有问题,应该去修正代码,而不是通过异常处理器去处理。

例如:

除0异常:ArithmeticException

强制类型转换异常:ClassCastException

数组越界异常:ArrayIndexOutOfBoundsException

空指针异常:NullPointerException

2.检查异常:除Error和RuntimeException的其它异常。

javac强制要求为这样的异常做预处理工作:使用try-catch语句捕获并处理,或使用throws抛出,否则编译不会通过。

这样的异常一般是由程序的运行环境导致的,如SQLException,IOException,ClassNotFoundException等。

异常处理的基本语法:

1.try-catch-finally语句块

注意:

<1>try、catch和finally中的局部变量之间不共享。

<2>发生异常,执行跳转到最近的匹配异常处理catch代码去执行,异常处理完后,接着catch代码块后面继续执行(终结式异常处理模式)

2.在方法声明时使用throws抛出交给方法调用者去执行,或手动throw显式抛出一个异常。

异常链化:

**异常链化:**以一个异常对象为参数构造新的异常对象。新的异常对象将包含先前的异常的信息。

使用一个带有Throwable参数的构造方法实现,这个当作参数的异常为根源异常(case)。

例如:Throwable字段cause,保存了构造时传递的根源异常参数。这种设计和链表设计类似,因此形成了异常链化。fae83d5c9fbb48b6027b127e969460ce.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值