Java之异常(三)

异常的处理流程:
在这里插入图片描述
详细过程说明:
1.程序首先执行try中的代码;
2.如果try中的代码出现异常,就会结束try中的代码,看catch中是否有匹配的异常类型;
3.如果找到匹配的异常类型,就会执行catch中的代码;
4.如果没有找到匹配的类型,就会将异常向上传递到上层调用者;如果上层调用者也没有相关的处理异常,就会接着向上传递,若一直到main方法也没有合适的代码处理异常,就会交给JVM来处理,此时程序就会异常终止;
5.无论是否找到匹配的异常类型,是否执行了catch中的代码,finally中的代码都会在该方法结束之前被执行到。

抛异常:
java内置的类可以使用throws关键字来抛出异常,而我们也可以使用throw关键字来手动抛出一个异常。当使用throws关键字时,把可能抛出的异常显式标注在方法定义的位置,从而提醒调用者要注意捕获这些异常。

finally使用的注意事项:

 public static void main(String[] args) {
        System.out.println(fun());
    }
    
    public static int fun() {
        try {
            return 10;
        } finally {
            return 20;
        }
    }
    
    执行结果:
    	20

因为finally是在方法返回之前执行(try或catch中如果有return会在这个return之前执行finally),但若finally中也存在return语句,那么就会执行finally中的return,从而不会执行到try中原有的return。
所以一般不建议在finally中写return。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值