异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。
异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Error与java.lang.Exception,平常说的异常指java.lang.Exception
处理异常的方法
-
throw 用throw抛出指定的方法中指定的异常,处理机会中断程序,不能实现后面的代码
注意:
1.throw关键字必须写在方法的内部
2.throw关键字后边new的对象必须是Exception或者Exception的子类对象
3.throw关键字抛出指定的异常对象,我们就必须处理这个异常对象
如果是RuntimeException或者是RuntimeException的子类对象,我们可以不处理,交给JVM处理
throw关键字后边创建的是编译异常,我们就必须处理这个异常,要么throws,要么try…catch -
try{可能出现问题的代码}catch(){} 出现异常时后面的代码还可以继续执行
一个try多个catch注意事项:
catch里边定义的异常变量,如果有子父类关系,那么子类的异常变量必须写在上边,否则就会报错
Objcets非空判断
Objects静态方法
public static <T> T requireNonNull(T obj)查看指定引用对象不是null
Throwable
Throwable类中定义了3个处理异常的方法
String getMessage()返回此throwable的简短描述
String toString()返回此throwable的详细消息字符串
void printStackTrace() JVM打印异常对象,默认此方法,打印的异常信息是最全面的
finally代码块:无论是否出现异常都会执行
注意:
- finally不能单独使用,必须和try一起使用
- finally一般用于资源释放(资源回收),无论程序是否出现异常,最后都要资源释放(IO)