spring 的 ExceptionHandler 中关于Exception 转型问题

2019-12-05 10:01发布

class A extends RuntimeException

class B extends A

业务类中
throw new B

拦截器中
@ExceptionHandler
public String handlerException(Exception e)

if (e instanceof A) 这里判断是false

想问一下原因

标签:
4条回答
冷血范
2楼-- · 2019-12-05 10:30

e是什么类型?你确定e是你throw的B类型吗?也可能是其他的异常。

查看更多
ら.Afraid
3楼-- · 2019-12-05 10:31

是不是代码里有多个B,检查下命名空间对不对

查看更多
爱情/是我丢掉的垃圾
4楼-- · 2019-12-05 10:33

应该是不可能的,肯定是你哪里搞错了,你可以把异常类的类型打印出来看下

查看更多
我只想做你的唯一
5楼-- · 2019-12-05 10:37

找到原因了。是因为maven热部署插件导致的。
去掉spring-boot-devtools
解决问题的帖子
https://www.jianshu.com/p/6c287d3eb896

查看更多
登录 后发表回答