异常的体系结构
Throwable
Error Exception
RuntimeException
错误和异常的区别:
错误通常是指由于硬件环境或者系统原因导致的程序员
通过代码无法解决的问题 相对较严重
异常是指程序运行过程当中出现的例外情况而已
运行时异常和非运行时异常的区别:
非运行时异常在编译的时候就需要进行异常处理
否则编译都无法通过 它们都直接继承 Exception
运行时异常 编译的时候不需要给出解决方案
运行时异常直接体现 它们继承 RuntimeException
异常都是在什么时候出现:
只要是个异常 都一定在运行的时候出现
常见的运行时异常:
NullPointerException
ClassCastException
ArrayIndexOutOfBoundsException
StringIndexOutOfBoundsException
IndexOutOfBoundsException
…
try catch finally 的标准语法:
try{
可能出现异常的语句;
}catch(要捕获的异常类型 异常代号){
异常代号.printStackTrace();
}finally{
无论是否出现异常 最终都要执行的操作
通常是释放和关闭资源的操作;
}
#:JDK7.0 开始 如果多种异常用同样的处理方式
可以直接用 | 连接
#:JDK7.0 开始 还有新的 TWR 语法
try(需要自动关闭和释放的资源){
}catch(Exception e){
}
throw 和 throws 的区别:
throw 用在方法体当中 在没有异常的情况下 主动制造异常出现的场景
throws 用在方法签名的最后 表达本方法当中出现指定种类的异常
方法不做处理 抛还给调用的上级进行处理