异常处理

异常处理(没有无异常的程序)

  • 概念:异常是程序在执行过程中所产生的问题。
  • 异常分类:
    1.编译期异常(检查异常–Checked Exception): 检查异常通常是用户错误或者不能被程序员所预见的问题。
    2.运行时异常(不检查异常–Unchecked Exception):运行时异常是一个程序员在运行过程中可能发生的、可能被程序员避免的异常类型。
    ★注:错误:错误不是异常。区别:异常能够用代码去纠正,而错误不能够用代码去纠正。如:硬件问题,运行环境问题。
  • 异常的类型
    Throwable–Error、Exception—RuntimeException(ArithmeticException、IllegalArguementException)、IOException

  • 捕获异常()

    • try-catch
      try{
      正常逻辑下有可能发生异常的代码
      }catch(异常类型){
      处理代码
      }catch(){
      处理代码
      }

★注:1.异常处理只要在返回虚拟机处理之前处理即可。2.当多个catch块之间存在继承关系的时候,子类catch块写前面,父类catch块写后面。
4>- try-catch- finally

try{
正常逻辑下有可能发生异常的代码
}catch(异常类型){
处理代码
}catch(){
处理代码
}finally{
始终执行的代码
}

★注:finally中书写不管是都发生异常都必须要执行代码,就算有return、break等跳转语句,也要先执行finally,再跳转。
1.特殊情况。

                        int x;
                        try{
                            x=1;
                            return x;
                        }catch(Exception ex){
                            x=2;

                        }finally{
                            x=3;
                        }
                        return x;
                        此时x的值为1.
                        若为引用类型,则还是finally的值。.  

- *finally*关键字
用于: 资源的清理,通道的关闭,各种连接用完以后的关闭。
- throw 关键字与throws关键字
完整方法名:访问修饰符+可选修饰符+返回类型+方法名+形参列表+抛出异常类型 例如:public void A()throws Exception{ }
区别
throw是写在方法体当中的,后面接的是异常对象,一旦执行到这步代码就会真正的执行异常抛出的动作;
throws是写在方法声明的最后,后面跟的是异常类的类名,可以跟多个,中间用逗号分隔。警告方法的调用者,本方法有可能会发生某些类型的异常。
★注:当throw后面跟的是运行时异常的时候,编译器不会强制我们在本方法后面加throws,就算我们自己加,本方法的调用者也不会在编译期收到警告。如果右面跟的是编译期异常的时候(包括Exception),编译器会强制我们在本方法的声明后面加上throws。
- 自定义异常
1.首先要继承Throwable或者Exception。
2.书写带参构造,将已发生的异常对象的信息,封装到自定义异常对象身上。书写带参构造,将业务异常信息装入自定义异常对象身上。
3.添加自定义异常的特有方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值