黑马程序员技术交流社区

标题: 【成都校区】异常处理 [打印本页]

作者: Depro    时间: 2018-12-13 15:02
标题: 【成都校区】异常处理
throw关键字
作用:可以使用throw关键字在指定的方法中抛出指定的异常。
使用格式:
throw new xxxException(“异常产生的原因”);
注意:
1,throw关键字必须写在方法的内部。
2,throw关键字后边new的对象必须是Exception或者Exception的子类对象。
3,throw关键字抛出指定的异常对象,我们就必须处理这个异常对象。
      throw关键字后边创建的是RuntimeException或者RuntimeException子类对象,我们可以不处理,默认交给jvm处理(打印异常对象,中断程序)。
      throw关键字后边创建的是编译期异常(写代码的时候抛出异常),那我们必须处理这个异常,要么throws,要么try...catch。

Objects非空判断
public static <T> T requireNonNull(T obj) {
    if (obj == null)
              throw new NullPointerException();
    return obj;
}

throws:是异常处理方式的一种,就是把产生的对应异常抛给方法的调用者。
throw:手动产生异常对象。

异常的处理方式
1,让别人处理(方法的调用者)<默认方式>,就是将异常对象声明抛出,抛给方法的调用者。
格式:
在方法参数后抛出:throws 异常类型
注意:
对于运行时异常,默认就会把异常交给调用者。
对于编译期异常,异常抛出是一种异常的处理方案,可以使程序编译通过,不再产生编译错误。
如果方法中有可能产生的异常类型不止一种,可以抛出多个异常用逗号隔开,还可以抛出多个异常的父类型。
2,try...catch自己处理。
格式:
try{
    //可能出现异常的代码
}catch(异常类型 变量名){
   //处理异常的逻辑
}
流程:当try中的代码出现异常了,产生异常对象,将异常对象和catch括号中的异常变量进行匹配。(1)如果可以匹配上,则会把对象赋值给异常的对象的变量,catch中的代码会被执行,异常则已处理完毕。(2)如果不能匹配上,则try...catch捕获异常失败,此时异常就没处理,则会抛给方法的调用者。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2