Java基础--异常机制

1.异常机制

Throwable.png

2.受检异常和运行时异常

受检异常:必须try-catch

运行时异常:一般不进行处理,如果没有捕获处理这个异常(即没有catch),系统会把异常一直往上层抛,一直到最上层,最后要么是线程中止,要么是主程序终止。

3.自定义异常(throw/throws)

a.E是受检异常

  1. 如果一个方法后面跟了throws E,且(函数体中包含有throw E语句或这个函数调用了方法后面跟了throws E的函数),那么这个函数必须放在一个try..catch(E1)中调用,否则发生编译错误(非运行时异常未处理),其中E1为E或E的父类。
  2. 如果一个方法后面跟了throws E,但函数体其实并不会throw E,那么这个函数也必须放在一个try..catch(E1)中调用,否则发生编译错误(非运行时异常未处理),这说明方法后面是否跟了throws E是编译器是否会检查这个错误的标志。
  3. 如果一个方法后面没跟throws E,但函数体内使用了throw E,那么会发生编译错误(异常未处理)
  4. 如果try...catch(E)中调用的代码没有包含跟throws E的函数,那么会发生编译错误(不可达的异常)
  5. 如果一个方法后面跟了throws E,且被放在try..catch(E)中了,那么如果发生异常会被捕捉。

b.E是运行时异常,上述四种情况均不会发生编译错误。不管有没有跟throws E,都不影响捕捉异常。

注:如果一个异常只是Exception的子类,不是RuntimeException的子类,那么这是一个非运行时异常。否则,这是一个运行时异常。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值