Java异常处理总结

异常:指的是程序运行过程中,因为用户的误操作、代码的BUG等等一系列原因,引起的程序奔溃的现象,被称为异常


异常处理: 解决掉异常的现象,让程序继续运行(不要奔溃退出)下去。程序容错能力提升!!!!程序就会越稳定!!!

java进行异常处理,有两种解决方案:
    |-- 抓捕异常【重点】
    |-- 抛出异常

异常分类:
    编译型异常:
        在源码编译阶段,直接抛出异常,这种异常必须要处理。
        不处理,这无法正常运行代码。

    运行时异常:
        在代码运行时,有可能出现的异常,被称为运行时异常

    错误:错误不是异常,而是脱离程序员控制的问题。     


抓捕异常:
    针对于可能出现异常的代码,进行抓捕

    
    try {
        // 可能发生异常的代码

    } catch (Exception e) {
        // 如果出现了一次,代码会立刻进入catch中
        // 在这儿解决抓捕到的异常
    } finally {
        // 必须要执行的代码
    }

public static int error(int a,int b) {
        int sum = 0;
        try {
            sum = a / b;        //可能发生异常的部分
        } catch (Exception e) {
            System.out.println("被除数不能为0");        //捕捉到的异常
        }finally {
            System.out.println("我不做大哥好多年");       //必须要执行的代码
        }
        return sum;
    }

输出结果:

被除数不能为0
我不做大哥好多年

如果使用抓捕异常,通过这种处理,程序即便是遇到了,也不奔溃!!!
try catch运行流程
    出现异常的流程
    不出现异常的流程


java中异常的继承关系:
    
    Throwable                异常的顶级类
        |-- Error            致命性的错误
        |-- Exception            常见的异常的父类
            |-- RuntimeException    运行时异常,只有运行时,才有可能出现异常
            
            其他的Exception的子类都是编译型异常,必须处理

多个异常的处理方案:
    

抛出异常的处理方案:
    编程型异常,如果我们不想处理,可以直接抛给调用者,有调用者完成处理


异常 异常处理

抓捕
    try {
    
    } catch(XxxException e) {
        // 异常处理
    } catch(XxxxException e) {
        // 异常处理
    } catch(Exception e) {
        // 异常处理
    } finally {
        // 必须要执行的代码

 }

抛出异常
    将异常交给调用者处理


finally关键字
    try {
        // 可能存在异常的代码
    } catch(XxxException e) {
        // 异常处理代码
    } [finally {
    
    
    }]

    回收垃圾
    关闭IO流
    关闭数据库连接
    ……

    核心必须要执行代码


    try {
    
    
    } finally {
        // 将必须要执行的代码写在finally中!!!
    }


注意:在开发过程中请注意,return关键字和finally关键字同时出现的情况,认真分析
    仔细考虑

自定义异常类:
    接触到的都是属于java官方提供的异常类,
    自己设计异常类

    定义一个普通的类,让该类成为Exception类或者它的子类的子类


异常抛出:
    可以通过创建异常(系统或者自定义),来给调用者一个确切的错误信息
    调用者就可以通过抛出的信息做成对应的判断。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

南孚程序员

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

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

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

打赏作者

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

抵扣说明:

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

余额充值