在春季启动项目中,异常统一处理,可以使用弹簧中@ControllerAdvice来统一处理,也可以自己来定义异常处理方案.Spring引导中,对异常的处理有一些默认的策略,我们分别来看。
默认情况下,春天引导中的异常页面是这样的:
此时,启动项目,如果项目抛出500请求错误,就会自动展示500。html这个页面,发生404就会展示404。html页面。如果异常展示页面既存在5 xx。html,也存在500年。html,此时,发500年生异常时,优先展示500。html页面。
动态的异常页面定义方式和静态的基本一致,可以采用的页面模板有jsp、freemarker, thymeleaf。动态异常页面,也支持404。html或者4 xx。html,但是一般来说,由于动态异常页面可以直接展示异常详细信息,所以就没有必要挨个枚举错误了,直接定义4 xx。html(这里使用thymeleaf模板)或者5 xx。html即可。
注意,动态页面模板,不需要开发者自己去定义控制器,直接定义异常页面即可,弹簧引导中自带的异常处理器会自动查找到异常页面。
页面定义如下:
页面内容如下:
& lt; !DOCTYPE html> & lt; html lang=癳n”xmlns: th=" http://www.thymeleaf.org "比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title> Title & lt;/head> & lt; body> & lt; h2> 5 xx & lt;表边界=?”在 & lt; tr> & lt; td> path & lt; td th:文本=" $ {path} "祝辞& lt;/td> & lt;/tr> & lt; tr> & lt; td> error & lt; td th:文本=" ${错误}"祝辞& lt;/td> & lt;/tr> & lt; tr> & lt; td> message & lt; td th:文本=" ${消息}"祝辞& lt;/td> & lt;/tr> & lt; tr> & lt; td> timestamp & lt; td th:文本=" ${时间戳}"祝辞& lt;/td> & lt;/tr> & lt; tr> & lt; td> status & lt; td th:文本=" ${地位}"祝辞& lt;/td> & lt;/tr> & lt;/table> & lt;/body> & lt;/html>
默认情况下,完整的异常信息就是这5条,展示效果如下:
如果动态页面和静态页面同时定义了异常处理页面,例如<代码>类路径:/静态/错误/404。