Spring Boot默认的异常处理---源码分析

Spring Boot默认的异常处理—源码分析
最近在学习使用Spring Boot,当发生代码异常时,都会跳转到一个异常页面,且页面的信息大同小异,猜想是不是同一个错误页面,只是错误信息不同,便打断点进行分析:
如下图所示:
在这里插入图片描述
默认的异常处理中,当发生异常时,会进入BasicErrorController类的errorHtml方法,从debugger中可以看出,该方法将请求中的异常信息、错误码等放到了model中,将和返回页面error一同放入了ModelAndView对象中,在error页面进行展示。

如果我们不想用默认的error页面,可以自己在resource/templates下新建一个error.html,在该页面使用EL表达式获取model中存放的属性,如下图所示:
在这里插入图片描述
这种方式有一个缺点,就是错误页面的名称必须是error,因为从源码可以看出,error是硬编码写死在代码里的。当然这个是有条件的,从源码中可以看出,当modelAndView == null时,才会返回error页面,什么时候modelAndView不为空,待研究。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值