Java中异常的分类
所有异常都从java.lang.Throwable类继承。
Throwable有两个直接子类: Error类和Exception类。
表达式
Exception可以使用任何标准Java库的类方法、自己的方法和从运行时异常抛出的基类型。
异常有执行异常(RuntimeException )和检查异常(Checked Exceptions )两种
运行时间扩展
默认情况下,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
已检查扩展
除了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是Throwable的子类,用于表示编译时间和系统错误,并指示合理的APP应用程序无法捕获的严重问题。 这样的错误大多是异常的条件。 虽然ThreadDeath错误是“常规”错误,但它也是Error的子类,因为大多数APP应用程序都不应该尝试捕获它。
在执行此方法时,不需要在throws子句中声明可能会抛出但无法捕获的Error子类。 这是因为这些错误可能是不会再发生的异常条件。
那是uncheckedExcepiton。