1.java将全部的错误封装为一个对象,其根本父类为Throwable, Throwable有两个子类:Error和Exception。java
2.Error
是Throwable
的子类,用于指示合理的应用程序不该该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath
错误是一个“正规”的条件,但它也是 Error
的子类,由于大多数应用程序都不该该试图捕获它。在执行该方法期间,无需在其 throws
子句中声明可能抛出可是未能捕获的 Error
的任何子类,由于这些错误多是不再会发生的异常条件。
3.Exception
类及其子类是 Throwable
的一种形式,它指出了合理的应用程序想要捕获的条件。
4.RuntimeException
是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的RuntimeException
的任何子类都无需在 throws
子句中进行声明。它是Exception的子类。程序员
5.异常的分类
Error:通常为底层的不可恢复的类;
Exception:分为未检查异常(RuntimeException)和已检查异常(非RuntimeException)。
未检查异常是由于程序员没有进行必须要的检查,由于疏忽和错误而引发的错误。几个经典的RunTimeException以下:
spa
1.java.lang.NullPointerException; 2.java.lang.ArithmaticException; 3.java.lang.ArrayIndexoutofBoundsException
Runtime Exception:
在定义方法时不须要声明会抛出runtime exception; 在调用这个方法时不须要捕获这个runtime exception; runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。 例如:nullpointexception,IndexOutOfBoundsException就属于runtime exception code
Exception 属于应用程序级别的异常,这类异常必须捕捉,Exception体系包括RuntimeException体系和其余非RuntimeException的体系对象
RuntimeException 表示系统异常,比较严重,若是出现RuntimeException,那么必定是程序员的错误blog
什么是unchecked异常?get
即RuntimeException(运行时异常)
不须要try...catch...或throws 机制去处理的异常虚拟机