Java Exception 和Error详解
一、 基本理念
Java的基本理念是“结构不佳的代码不能运行”。发现错误的理想时机是编译阶段,也就是在试图运行程序之前,然后编译期并不能找出所有的错误,余下的问题必须在运行期间解决。改进的错误恢复机制是提供代码健壮性的最强有力的方式。
二、 Throwable
Throwable这个Java类被用来表示任何可以作为异常被抛出的类。下面是这个类及其子类的导出图。
三、详解Error、 Exception
在Java语言中,将程序执行中发生的不正常情况称为“异常”(开发过程中的语法错误和逻辑错误不是异常), Java程序在执行过程中所发生的异常事件可分为两类:Error和Exception
1、Error
2、Exception
Exception类错误是指其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如: 空指针访问、 试图读取不存在的文件、 网络连接中断等。捕获错误最理想的是在编译期间,但有的错误只有在运行时才会发生。比如:除数为0,数组下标越界等。异常类分为 编译时异常和运行时异常。
①运行时异常(unchecked)。
运行时异常 是指编译器不要求强制处置的异常。一般是指编程时的逻辑错误,是程序员应该积极避免其出现的异常。即使没有使用try和catch捕获,Java自己也能捕获,并且编译通过 ( 但运行时会发生异常使得程序运行终止 ),被Java虚拟机抛出。
常见的运行时异常:
IndexOutOfBoundsException(下标越界异常)
NullPointerException(空指针异常)
NumberFormatException (String转换为指定的数字类型异常)
ArithmeticException -(算术运算异常 如除数为0)
ArrayStoreException - (向数组中存放与声明类型不兼容对象异常)
SecurityException -(安全异常)
②编译时异常(checked )
IOException(操作输入流和输出流时可能出现的异常。)
EOFException (文件已结束异常)
java.lang.InterruptedException
java.sql.SQLException
四、关于异常的处理
1、 Java提供的是异常处理的抓抛模型。
2、抛出异常 ,使用throws关键字
public void readFile() throws IOException {
FileInputStream in=new FileInputStream("myfile.txt");
}
参考链接:
https://blog.****.net/rainminism/article/details/51208572
https://blog.****.net/m0_37531231/article/details/79502778