Throwable 可以用来表示任何可以作为异常抛出的类(注意,是类不是接口),分为两种: Error(注意!error也是可以throw的,但是不建议) 和 Exception。
其中 Error 用来表示 JVM无法处理的错误,对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和预防,遇到这样的错误,建议让程序终止。
Exception 分为两种:
受检异常 :编译器要求必须处置的异常,需要用 try...catch... 语句捕获并进行处理,或者用throws在方法头,或者用throw在方法体中抛出,这种异常并且可以恢复;
非受检异常 :是程序运行时错误,不要求强制处理的异常,但是一般是代码逻辑错误:ArrayIndexOutOfBoundsException(数组下标越界)、NullPointerException(空指针异常)、ArithmeticException(算术异常)、MissingResourceException(丢失资源)、ClassNotFoundException(找不到类)等。