java中的异常
一直对异常的概念不太清晰== ,这次好好总结一下。
首先上图,看一下结构
Throwable
Throwable 是所有错误和异常的父类,实现了Serializable接口。
Exception
- 异常分为RuntimeException 和 CheckedException。
- Exception类中只有几个构造方法,而打印异常信息等常用的方法都是来自于父类Throwable的方法
RuntimeException (运行时异常)
!(https://img-blog.****img.cn/20181130102942382.png)
运行时异常,java编译器不要求必须进行异常捕获处理或者抛出声明,由开发者自行决定。例如 NullPointerException/IndexOutOfBoundsException/ClassCastException
CheckedException(编译期异常)
除了运行时异常,其他异常都属于编译期异常也成为检查型异常。例如FileNotFoundException(文件找不到异常)、IOException (I/O 异常),如下图。编译期异常是可以被预知的,编译器会强制对异常进行捕获或声明。
private static void fileException() {
String pathname="D://test//xx.txt";
File file= new File(pathname);
FileInputStream inputStream = new FileInputStream(file);
}