异常的抛出与捕捉

异常的抛出与捕捉

一、异常的抛出

​ 异常抛出后,如果不做任何处理,程序就会被终止。例如,以下将写一个关于a/b的除法代码,但由于b不能等于零,程序将会在出现异常处终止。

public class Demo1 {
    public static void main(String[] args) {
        System.out.println("欢迎来到除法世界!");
        int a = 10;
        int b = 0;
        System.out.println(a / b);

    }
}

运行结果为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u5gUOHD8-1684062930800)(C:\Users\Kirito\AppData\Roaming\Typora\typora-user-images\image-20230514184128967.png)]

可以看到,第一条打印语句没有异常,所以程序打印了第一条语句"欢迎来到除法世界!",但当程序运行至第二条打印语句"a/b"时,由于系统无法判定b为零的情况,所以给出了异常:ArithmeticException: / by zero。

二、异常的捕捉

​ Java语言的异常捕获结构由try、catch、finally 3部分组成。其中,try语句块存放的是可能发生异常的Java语句;catch语句块在try语句块之后,用来激发被捕获的异常;finally语句块是异常处理结构的最后执行部分,无论catch语句块中的代码如何退出,都将执行finally语句块。

public class Demo1 {
    public static void main(String[] args) {
        try {                              //try语句块中包含可能出现异常的程序代码
            System.out.println("欢迎来到除法世界!");
            int a = 10;
            int b = 0;
            System.out.println(a / b);
        }catch (Exception e){             //catch语句块用来激发被捕获的异常
            e.printStackTrace();         //输出异常性质
        }finally {                       //无论try-catch语句块是否顺利执行,都将执行finally语句块
            System.out.println("还会再回来吗?");
        }

    }
}

运行结果:

在这里插入图片描述

三、注意事项

1. finally语句块未执行时

  • 在finally语句块中发生了异常。
  • 在前面的代码中使用了System.exit() 退出了程序。
  • 程序所在线程死亡。
  • 关闭CPU。

2.try-catch结果预想不一致

​ 有时为了编程简单会忽略catch语句后的代码,这样try-catch语句就成了一种摆设,一旦程序在运行过程中出现异常,就会导致最终运行结果与期望的不一致,而错误发生的原因很难查找。因此要养成良好的编程习惯,最好在catch语句块中写入异常处理的代码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懵君意

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值