java有几种标准的异常
标准运行时异常(Standard runtime exception)
——整数除零,非法的数组访问,因为这些时间可能发生在任何位置,为了找到异常出现的位置,异常处理程序的负担可能会过重,如果提供了catch块,这些异常的行为就很像其他任何异常,如果没有为标准异常提供catch块,标准异常抛出,那么它的传播像往常一样,可能会经过main,在这种情况下,它会导致程序的异常终止,并给出错误的信息。
一般来说,这些都是编程错误,不能被捕获。
——标准异常检查(Standard checked exception)
如果调用方法,该方法直接或间接抛出了标准检查异常,那么,程序员必须要么为其提供catch块,要么显示声明,通过在方法声明中的throws子句来传播异常,注意,最终会对异常进行处理,因为对main而言,有throws子句是一件很可怕的方式。
——错误时虚拟机的问题。OutOfMemoryError是最常见的错误,一般来说错误是不可恢复的,并且不能被捕获。
小结:
不必处理运行时异常。
必须处理检查异常或者throws子句中列出检查异常。
错误是不可恢复的异常
标准运行时异常 | 含义 |
ArithmeticException | 溢出或整数除以零 |
NumberFormatException | 非法将String类型转换为数字类型 |
IndexOutOfBoundsException | 数组或String的非法索引 |
NegativeArraySizeException | 试图创建负长度的数组 |
NullPointException | 非法使用null引用 |
SecurityException | 运行时安全冲突 |
NoSuchElementException | 获取下一项失败 |
常见的检查异常 | 含义 |
java.io.EOFException | 输入完成前文件结束 |
Java.io.FileNotFoundException | 没有找到打开的文件 |
Java.io.IOException | 包括大部分的I/O异常 |
InterruptException | Thread.sleep方法抛出 |