Throwable是所有错误(Error)和异常(Exception)的基类
- Error:用于指示合理的应用程序不应该试图捕获的严重问题。这种情况是很大的问题,大到你不能处理了,所以听之任之就行了,你不用管它。比如说VirtualMachineError:当 Java 虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。好吧,就算这个异常的存在了,那么应该何时,如何处理它呢??交给JVM吧,没有比它更专业的了。
- Exception:它指出了合理的应用程序想要捕获的条件。对于可恢复的条件使用被检查的异常(CheckedException),对于程序错误(言外之意不可恢复,大错已经酿成)使用运行时异常(RuntimeException)
- CheckedException:这种是需要用try-catch来捕获的
- UncheckedException(RuntimeException):不需要用try-catch捕获
- IllegalArgumentException(抛出的异常表明向方法传递了一个不合法或不正确的参数)
- NullPointerException(空指针)
- ClassCastException(类转换异常)
- ArrayIndexOutOfBoundsException(数组越界)
- NoSuchMethodException(没有找到合适方法,经常出现在Setter和Getter的调用时)