https://zhuanlan.zhihu.com/p/265615556
所有的异常都来自于Throwable。Throwable有两个子类,Error和Exception。
Error通常表示的是严重错误,这些错误是不建议被catch的。
在Exception中有一个很特别的异常叫做RuntimeException。RuntimeException叫做运行时异常,是不需要被显示catch住的,所以也叫做unchecked Exception。而其他非RuntimeException的Exception则需要显示try catch,所以也叫做checked Exception。
RunntionException 不需要check,直接报错;Exception 可以抛给上游自行决定是否需要中断或者做其他什么处理。