Java中异常捕获 try catch finally

异常有以下几种:

重点几种:

Error(系统错误):描述的是内部系统出现错误;用户什么也干不了;

Exception(异常):描述的是由程序和外部环境引起的错误,这样的错误能被捕获;

RuntimeException(运行时异常):虽然是异常的子类,但是单独挑出来说明;它描述的是程序设计错误,错误的类型转换,数组越界访问,都会由JVM抛出RuntimeException;

RuntimeException的几种举例:

 

Error是免检异常,它们在运行前,不会被编译器发现;运行过后,JVM会报错,类似OOM这种;

除免检异常(和RunTimeException)外所有的异常全部是必检异常,他们在运行前会被编译器强制引入trycatch语句;

 

 

Java处理异常的三个步骤:

1.声明一个异常(注意这里声明异常是用throws,后面跟的是异常类名,而且声明是放在函数体后面)

2.捕获一个异常;   try{ }catch{ }catch{ }catch{ }可加多个catch; 

3.?抛出一个异常(不一定会用到):当异常处理器无法处理这个异常的时候,或者调用者只是想发现它并不想处理它;

(抛出异常用throw,后面加的是异常对象,往往抛出一个异常是在一个方法体内部);

 

声明异常

常把异常的名字放在方法的背后,若有多个异常则用逗号分隔;

 

捕获异常

在try语句中写入可能会出问题的语句,运行时若出了问题则往catch走,没出问题则跳过catch;catch语句中放了出现异常时处理异常的逻辑语句;

 

来看下面一个例子:

蓝色箭头处数组越界,所以会发生运行是异常;由于这个异常是免检异常,所以声明和捕获这里其实都不需要写;

 

 

finally语句:

先看个例子:

 

①.当try中没有出现异常,会执行finally语句和trycatchfinally语句块(简称tcf语句)后面的语句;

②.当try出现了异常,(例如try中statement2异常,statement3不会执行),并被catch捕获,直接跳到相应catch语句中执行语句,finally和tcf后的语句都会执行

③.当try中出现异常,也是照上面一样,而没有被catch捕获,会只执行finally语句;

④当try中出现异常,也是照上面一样,虽然被catch捕获了,但又被抛出,会只执行finally语句;

 

最后,finally语句无论如何都会执行,就算trycatch语句中有return,finally也会在return前执行,最后在执行return;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值