Java 异常:捕获异常

语法结构

 

1.捕获异常语法结构:

 

 

红框:使用try{}块来抛出异常

蓝框:使用try{}块来抛出异常

橙框:由于对循环体中的异常进行了捕获处理,所以该行代码可以执行 

 

2.try…catch…finally异常处理结构中,try语句块是必须的,  catchfinally语句块至少出现一个。

 

3.注意如果try语句块包含的是检查时异常,则在没有通过throws抛出该异常类的情况下,try必须和catch一起使用,当该行代码去掉或注销掉时,catch相应的异常语句块必须去掉,如下代码:

 

注:由于该行代码抛出检查时异常,所以该行代码去掉或注销掉时,catch相应的异常语句块必须去掉。 

 

 

多重catch

 

1.try语句块中的代码可能会引发多种类型的异常,当引发异常时,会按顺序查看每个 catch 语句,并执行第一个与异常类型匹配的catch语句,其后 catch 语句被忽略。

 

 

2.在捕获异常的时候,应按照“从小到大”的顺序捕获异常,即先子类后父类。 

 

 

 

3.先子类异常,后父类异常:ArrayIndexOutOfBoundsException异常类是RuntimeException的子类,而RuntimeException异常类是Exception的子类,他们的先后顺序不能颠倒。 

 

 

finally关键字

1.Java异常在try/catch块后加入finally块,可以确保无论是否发生异常 finally块中的代码总能被执行。 

 

 

红框:无论是否异常,都将执行finally块中语句。即使return也不例外。仅当程序调用System.exit(1)才不执行该块。

 

 

final、finally和finalize区别

 

 

  • final—修饰符(关键字),修饰的类不能被继承,修饰的方法不能被重写,修饰的变量为常量。
  • finally—在异常处理时提供 finally 块来执行任何清除操作。
  • finalize—方法名,finalize() 方法在垃圾收集器将对象从内存中清除之前做必要的清理工作,如下代码: 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值