1:java中的所有异常都来自于顶级父类Throwable
2:他的子类分为Error和Exception
3:Error表示非常严重的错误,像java.lang.StackOverFlowError和java.lang.OutOfMemoryError.当发生error时,一般不是程序自己能够解决的,还有可能是由于jvm,磁盘,操作系统层面起的,所以不建议在代码中去捕获这些error,捕获的意义不大。
4:exception表示异常,例如java.Lang.NullPointerException...当异常发生时,是可以靠程序自己来解决的,我们可以通过捕获异常进行特殊的处理
5:异常大致可以分为两类,RuntimeException和非RuntimeException
6:RuntimeException为运行时异常,例如:java.Lang.NullPointerException,他是在程序运行期间抛出的,属于非检查异常,可以进行捕获处理,也可以不进行捕获,此类异常的发生一般都是由于程序逻辑出了问题,所以可以从检查程序逻辑入手来避免此类异常的发生。
7:非RuntimeException表示非运行时异常,也就是我们通常说的检查异常,所以必须要进行处理,不然程序不能检查异常通过,例如SQLException,IOException,以及用户自定义的Exception