基本概念
在Java语言中,将程序执行过程中发生的不正常情况称为”异常“。(开发过程中的语法错误和逻辑错误不是异常)。
执行过程中所发生的异常事件可分为两大类。
1)Error(错误):Java虚拟机无法解决的严重问题。如:JVM系统内部错误,资源耗尽等严重情况。比如:StackOverflowError(栈溢出),Error是严重错误,程序会崩溃。
2)Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如空指针访问,试图读取不存在的文件,网络连接中断等。Exception又分为两大类:运行时异常[ 程序运行时,发生的异常 ] 和编译时异常[ 编程时,编译器检查出的异常 ] 。
异常体系图:
Throwable 继承 Object 类,包含两个直接子类 Error 和 Exception 。
Error 类包含多个直接子类 ,比如上述例子中的 StackOverflowError(栈溢出),OutOfMemoryError (内存不足)等。
Exception 类包含两大类 分别是 RuntimeException 和 FileNotFoundException,ClassNotFoundException等(属于编译异常)。
五大常见的运行时异常
1)NullPointerException : 空指针异常。
当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
2 ) ArithmeticException : 数字运算异常。
当出现异常的运算条件时,抛出此异常。
3 )ArrayIndexOutOfBoundsException : 数组下标越界异常
用非法索引访问数组时抛出的异常。
4 ) ClassCastException : 类型转换异常
当试图将对象强制转换为不是实例的子类时,抛出该异常。
5 ) NumberFormatException : 数字格式不正确异常
当应用程序试图将字符串转换为一种数据类型,但该字符串不能转换为适当类型时,抛出该异常 => 使用异常我们可以确保输入是满足条件数字。