Day05异常

异常

异常的产生
  原方法中出现异常后,如果没有异常处理机制,则把异常传递给main方法处理,main方法不能处理,则传给JVM进行处理,把异常的内容,原因和位置打印并中断程序

Java的异常处理关键字throw
作用:
可以使用throw关键字在指定的方法中抛出指定的异常
使用格式
  throw new xxxException(“异常产生的原因”)
注意:
  1、throw关键字必须写在方法内部
  2、new的对象必须是Exception或它的子类
  3、抛出异常后,必须处理该异常
throw关键字后创建的是RunimeException或子类,我们可以不处理,交给JVM
throw关键字后创建的是编译异常,必须处理异常,throw or try-catch

eg:
1、在以后的项目中必须对传过来的参数进行合法性校验,如果参数不合法,我们必须使用抛出异常的方式,告知调用者,传递的参数有问题
2、NullPointerException和ArrayIndexOutOfBoundsException是运行期异常,交给JVM处理
3、Objects.requireNonNull(参数列表);该方法可以帮我们判断处理空指针异常

异常处理的方法throws

throws关键字:异常处理的第一种方法
  当内部抛出这个异常时,我们必须处理这个异常对象
  可以使用throws关键字处理异常对象,会把dui’xiang声明抛出给方法的调用者(自己不处理,交给别人处理),最终交给JVM处理->中断处理

//使用格式
    修饰符 返回值类型 方法名(参数列表) throws AAAException,BBBException...{
        throw new AAAException(" ");
        throw new BBBException(" ");
    }

注意
1、throws写在方法声明处
2、异常必须是Exception或者它的子类
3、抛出了多个异常对象,throws也必须声明多个异常对象
4、如果异常是子父类的关系,只需要写父类即可
5、调用了一个声明抛出异常的方法,就必须处理声明的异常
要么继续thorws交给方法的调用者处理,最终交给JVM处理
要么try…catch自己处理异常

异常处理的方法try-catch

异常处理的第二种方法,try…catch

格式:
    try{
        可能产生异常的代码
    }catch(定义一个异常变量,用于接受try中抛出的异常){
            异常的处理逻辑,异常对象出现后,怎么处理异常
            工作中一般把异常信息记录到日志中
       }
     catch(catch可以有多个
       }

注意:
  1、try中可能抛出多个异常,可以多个catch处理异常
  2、如果try中产生了异常,那么就会执行catch的异常处理逻辑,结束后再执行try…catch后的代码,如果try中没有产生异常,那么不会执行catch中异常处理逻辑

finally代码块

try{
    可能产生异常的代码
}catch(定义一个异常变量,用于接受try中抛出的异常){
        异常的处理逻辑,异常对象出现后,怎么处理异常
        工作中一般把异常信息记录到日志中
   }
catch(catch可以有多个
   }
finally{
    无论异常是否出现,都会执行
 }

finally关键字不能单独使用,必须和try一起使用
finnaly一般用于资源释放(资源回收),无论程序是否出现异常,最后都要资源释放(IO)

多异常的捕获机制
1、一个try多个catch,如果Exception有父子类关系,子类必须写在上面,否则会报错。
2、运行期异常可以不处理,不捕获也不处理
3、finnaly中如果有return语句,这个return将永远成立,避免这样的事情发生

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值