exception java 顺序_java-Spring如何管理ExceptionHandler优先级?

给这个控制器

@GetMapping("/test")

@ResponseBody

public String test() {

if (!false) {

throw new IllegalArgumentException();

}

return "blank";

}

@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)

@ExceptionHandler(Exception.class)

@ResponseBody

public String handleException(Exception e) {

return "Exception handler";

}

@ResponseStatus(value = HttpStatus.BAD_REQUEST)

@ExceptionHandler(IllegalArgumentException.class)

@ResponseBody

public String handleIllegalException(IllegalArgumentException e) {

return "IllegalArgumentException handler";

}

这两个ExceptionHandler都与IllegalArgumentException匹配,因为它是Exception类的子级.

当我到达/ test端点时,将调用handleIllegalException方法.如果抛出NullPointerException,则将调用handleException方法.

spring如何知道它应该执行handleIllegalException方法而不是handleException方法?当多个ExceptionHandler匹配一个Exception时,它如何管理优先级?

(我认为顺序或ExceptionHandler声明很重要,但是即使我在handleException之前声明handleIllegalException,结果也是一样的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值