一、异常类的基本结构如下:
二、含义解释
1)Throwable类是 Java 语言中所有错误或异常的超类(在java.lang包);
2)Error和Exception是Throwable的两个子类的实例,
通常用于指示发生了异常情况。
3)Error错误一般都是由于jvm或者是硬件引发的问题(内存溢出等),所有一般都不会通过代码去处理。
4)Exception异常如果在程序中出现,那么一般就需要通过代码去处理了。
三、Exception异常
Exception分为:编译时异常和运行时异常;
1)编译时异常:它是非运行时异常,受检异常,通俗讲就是尚未生成.class文件;
如果一个方法内部抛出了一个编译时异常对象,那么该方法则必须要声明抛出;
如果调用了一个声明抛出编译时异常类型的方法,那么调用者必须要处理;
2)运行时异常:(RunTimeException以及RuntimeException子类),已生成.class文件,但是在运行时出现错误。
如果一个方法内部抛出了一个运行时异常对象,那么方法声明可以声明抛出也可以不声明抛出;
如果调用了一个声明抛出运行时异常类型的方法,那么调用者可以处理也可以不处理。
四、常见考题:请写出5种RuntimeException
1)ArrayStoreException 试图将错误类型的对象存储到一个对象数组时抛出的异常;
2)ClassCastException 试图将对象强制转换为不是实例的子类时,抛出该异常;
3)IllegalArgumentException 抛出的异常表明向方法传递了一个不合法或不正确的参数;
4)IndexOutOfBoundsException 指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出;
5)NoSuchElementException 表明枚举中没有更多的元素;
6)ArithmeticException 如10/0是就会出现此异常;
7)ArrayIndexOutOfBoundsException 数组越界异常;