Java异常(注意一些区分)

1.finally中的代码和try-catch

finally中的代码和try-catch中的代码冲突时,finally中的代码一定会被执行且会忽略try-catch中的代码。

但是如果try-catch中有System.exit(0);(虚拟机退出语句),则不会去执行fianlly中的代码。

另外如果try语句中含有return语句,finally语句在return语句执行后执行。


2.throws/throw处理方式:

1)throw 写在方法内,后面跟一个异常对象。

2)throws 在方法的定义中说明方法可能抛出的异常,后面跟异常类的名字,声明这个方法将不处理异常,把异常交给上一级方法处理。

3)调用时,调用者不能抛出范围更小的异常。

 对于方法a,如果它定义了throws Exception。那么当它调用的方法b返回异常对象时,方法a并不处理,而将这个异常对象向上一级返回,如果所   有的方法均不进行处理,返回到主方法,如主方法也不进行处理,则到虚拟机中,程序中止。 如果在方法的程序中有一行throw new Exception()   那么其后的程序不执行,如果没有对这个可能出现的检查结果进行处理,那么程序就会报错。

4)throws和throw没有必然的联系。

注意:

方法的覆盖中,如果子类的方法抛出的例外是父类方法抛出的例外的父类型,那么编译就会出错:子类无法覆盖父类。

子类抛出的例外或者与父类抛出的例外一致,或者是父类抛出例外的子类型,或者子类型不抛出例外。

如果父类型无throws时,子类型也不允许出现throws。此时只能使用try catch。

 

 自定义异常:

a. 使其继承Exception或者RuntimeException。

b. 写构造器,直接调用父类的构造器



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值