异常类
1、Expection(异常):是程序本身可以处理的异常。
2、 Error(错误):是程序无法处理的错误。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,一般不需要程序处理。
3、检查异常(编译器要求必须处理的异常): 除了Error,RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是java编译器会检查它,也就是说,当程序中出现这两类异常时,要么用try-catch语句捕获他,要么用throws子句声明抛出它,否则编译不会通过。
4、非检查异常(编译器不要求处置的异常):包括运行时的异常(RuntimeException与其子类)和错误(Error)。
检查异常
也叫做编译异常,非运行时异常 。程序正确,但因为外在的环境条件不满足引发。例如:这不是程序本身的逻辑错误,Java编译器强制要求必须处理这类异常,如果不去处理这个异常,程序就会报错。(读取一个硬盘上图片,读取的代码逻辑是正确的,但是这个图片所在的硬盘可能出现坏道,就没法读取这个文件,未雨绸缪提前检测可能会有读取硬盘问题)
处理该异常共有两种方法:
1、try-catch捕获这个异常,自己处理了这个异常
2、throws抛出异常,我不处理这个异常,抛出异常
运行异常 RuntimeException
这类异常需要更改程序来避免,Java编译器强制要求处理这类异。如果抛出运行时异常,是要根据抛出的异常的信息去分析程序的错误,在写代码时候绝大部分情况下不去try-catch运行时异常。如:程序存在bug,如数组越界,0被除,空指针…
常见异常
运行时异常:
ArrayIndexOutOfBoundsException: 数组下标越界
NullPointerException: 空指针异常(引用数据类型)
NumberFormatException: 数字格式化异常
StringIndexOutOfBoundsException: 字符串下标越界
ClassCastException:类型强制转换异常
IllegalArgumentException:传递非法参数异常
ArithmeticException:算术运算异常
ArrayStoreException:向数组中存放于声明类型不兼容对象异常
NegativeArraySizeException:创建一个大小为负数的数组错误异常
SecurityException:安全异常
UnsupportedOperationException:不支持的操作异常
编译异常:
SQLException:操作数据库异常
IOException:输入输出异常
FileNotFoundException:文件未找到异常
ReflectiveOperationException:反射操作异常
ClassNotFoundException:类未找到异常:
NoSuchMethodException:方法未找到异常
NoSuchFieldException:字段未找到异常:
IllegalAccessException:非法访问权限异常
InstantiationException:实例化异常
CloneNotSupportedException:不支持克隆异常
InterruptedException:被中止异常