1.异常的层次机构:
所有异常的父类是Throwable,它有两个子类,分别是Error和Exception。
2.Error:
表示系统错误,通常不能处理和恢复。比如StackOverFlowError或者OutOfMemoryError,出了问题只能结束程序。
3.Exception :
表示程序可以处理的异常。Exception又分为Checed Exception(被检查异常)和Runtime Exception(运行时异常,也叫做不被检查的异常)
Checked Exception应该被检查并尝试修复(即必须try-catch处理),比如FileNotFoundException。
RuntimeException不要求被处理,比如NullPointerException,这通常是因为糟糕的编码造成的。