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捕获异常失败,此时异常就没处理,则会抛给方法的调用者。 |
|