1. Throwable
所有java的异常都是Throwable的子类,其中包括两种子类,分别是Error和Exception。throwable中主要的组成,一个是errorMessage,还有一个是出错是当前thread的调用栈信息,还有就是一个throwable可能是由于其他异常引起的,所以还包括caused
2. Error
Error是不需要被try catch的,是一些虚拟机的错误,比如内存不足
3. Exception
程序中的异常,Exception中除了RuntimeException是不需要try catch的,其他都必须加try catch,是否用try catch也叫被检查。RuntimeException是运行时异常,一般不能确定异常是否会发生,比如NullPointerException就是一个运行时异常,这类异常通常在运行时有非常大的不确定性。