粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 CHecked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.
绿色的异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...
而声明为Error的,则属于严重错误,需要根据业务信息进行特殊处理,Error不需要捕捉。
Java异常又可以分为不受检查异常(Unchecked Exception)和 检查异常(Checked Exception)。
检查异常:在正确的程序运行过程中,很容易出现的、情理可容的异常状况,在一定程度上这种异常的发生是可以预测的,并且一旦发生该种异常,就必须采取某种方式进行处理。
️ 除了RuntimeException及其子类以外,其他的Exception类及其子类都属于检查异常,当程序中可能出现这类异常,要么使用try-catch语句进行捕获,要么用throws子句抛出,否则编译无法通过。
不受检查异常:包括RuntimeException及其子类和Error。
️ 不受检查异常 为编译器不要求强制处理的异常,检查异常则是编译器要求必须处置的异常。
SqlException分类:
参考:https://chaxiaoniu.oschina.io/2017/07/13/JavaException/
https://www.cnblogs.com/niceyoo/p/10585459.html
try catch后catch中往外抛异常:考虑事物,如果不抛异常,事物不会回滚,会提交