`

Java中常见的异常

 
阅读更多

Java 中异常的分类

所有异常,都继承自 java.lang.Throwable 类。

Throwable 有两个直接子类, Error 类和 Exception 类。

Exception

Exception 则可使从任何标准 Java 库的类方法,自己的方法以及运行时任何异常中抛出来的基类型。

异常可分为执行异常( RuntimeException )和检查异常( Checked Exceptions )两种

RuntimeException

RuntimeException 在默认情况下会得到自动处理。所以通常用不着捕获 RuntimeException ,但在自己的封装里,也许仍然要选择抛出一部分 RuntimeException

RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需 throws 子句中进行声明。( java api

它是 uncheckedExcepiton

Java.lang.ArithmeticException

Java.lang.ArrayStoreExcetpion

Java.lang.ClassCastException

Java.lang.EnumConstantNotPresentException

Java.lang.IllegalArgumentException

       Java.lang.IllegalThreadStateException

       Java.lang.NumberFormatException

Java.lang.IllegalMonitorStateException

Java.lang.IllegalStateException

Java.lang.IndexOutOfBoundsException

       Java.lang.ArrayIndexOutOfBoundsException

       Java.lang.StringIndexOutOfBoundsException

Java.lang.NegativeArraySizeException’

Java.lang.NullPointerException

Java.lang.SecurityException

Java.lang.TypeNotPresentException

Java.lang.UnsupprotedOperationException

CheckedException

除了 runtimeException 以外的异常,都属于 checkedException ,它们都在 java.lang 库内部定义。 Java 编译器要求程序必须捕获或声明抛出这种异常。

一个方法必须通过 throws 语句在方法的声明部分说明它可能抛出但并未捕获的所有 checkedException

Java.lang.ClassNotFoundException

Java.lang.CloneNotSupportedException

Java.lang.IllegalAccessException

Java.lang.InterruptedException

Java.lang.NoSuchFieldException

Java.lang.NoSuchMetodException

Error

当程序发生不可控这种错误时,通常的做法是通知用户并中止程序的执行。

与异常不同的是 Error 及其子类的对象不应被抛出。

Error Throwable 的子类,代表编译时间和系统错误,用于指示合理的应用程序 不应该试图捕获 的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个 正规 的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。

在执行该方法期间, 无需在其 throws 子句中声明可能抛出但是未能捕获 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件。

它是 uncheckedExcepiton

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics