Java异常类型

异常的根类是java.lang.Throwable。所以Java异常类都直接或者间接地继承自Throwable。可以通过继承Exception或者Exception的子类来创建自己的异常。

异常可以分为3个类型:系统错误、异常、运行时的异常。

(1)系统错误Error是由Java虚拟机抛出的,用Error类表示。Error描述的是内部系统的错误,如果发生这样的错误,系统处理通知用户以及尽量稳妥的终止程序外,几乎什么也不能做。

比如:

LinkageError:一个类依赖于另一个类,但是在编译前后,后者进行了修改,出现不兼容。

VirtualMachineError:Java虚拟机崩溃,或者继续运行所需的资源已经耗尽。

(2)异常Exception是用Exception类表示的,它描述的是由程序和外部环境所引起的错误,这些错误能被程序捕获和处理。

比如:

ClassNotFoundException:试图使用一个不存在的类引起异常。

IOException:输入输出操作异常。

(3)运行时的异常RuntimeException,它描述的是程序设计错误,例如,错误的类型转换,数组越界,数值错误

ArithmeticException:一个整数除以0 。浮点数的算术运算不抛出异常。

NullPointerException:空指针异常。

IndexOutOfBoundsException:数组下标越界异常

IllegalArgumentException:传递给方法的参数非法或不合适。

 

     RuntimeException、Error和他们的子类都称为免检异常,javac在编译时,不会提示和发现这样的异常,不要求在程序处理这些异常。所以如果愿意,我们可以编写代码处理(使用try…catch…finally)这样的异常,也可以不处理。对于这些异常,我们应该修正代码,而不是去通过异常处理器处理 。这样的异常发生的原因多半是代码写的有问题。如除0错误ArithmeticException,错误的强制类型转换错误ClassCastException,数组索引越界ArrayIndexOutOfBoundsException,使用了空对象NullPointerException等。

      其他的异常称为必检异常,意味着编译器会强制程序员检查并通过try-catch块处理它们,或者在方法头进行throws声明。这样的异常一般是由程序的运行环境导致的。因为程序可能被运行在各种未知的环境下,而程序员无法干预用户如何使用他编写的程序,于是程序员就应该为这样的异常时刻准备着。如SQLException , IOException,ClassNotFoundException 等。

算数异常类:ArithmeticExecption

 

空指针异常类型:NullPointerException

 

类型强制转换类型:ClassCastException

 

数组负下标异常:NegativeArrayException

 

数组下标越界异常:ArrayIndexOutOfBoundsException

 

违背安全原则异常:SecturityException

 

文件已结束异常:EOFException

 

文件未找到异常:FileNotFoundException

 

字符串转换为数字异常:NumberFormatException

 

操作数据库异常:SQLException

 

输入输出异常:IOException

 

方法未找到异常:NoSuchMethodException

 

下标越界异常:IndexOutOfBoundsExecption

 

系统异常:SystemException

 

创建一个大小为负数的数组错误异常:NegativeArraySizeException

 

数据格式异常:NumberFormatException

 

安全异常:SecurityException

 

不支持的操作异常:UnsupportedOperationException

 

 

 

 

 

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页