谈谈对异常的理解

来源:互联网 发布:本地ip和网络ip 编辑:程序博客网 时间:2024/05/05 14:13

一、异常类的基本结构如下:


二、含义解释

    1)Throwable类是 Java 语言中所有错误或异常的超类(在java.lang包);

    2)Error和ExceptionThrowable的两个子类的实例,通常用于指示发生了异常情况。

    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  数组越界异常;

0 0