使用
给类加上@ControllerAdvice注解,给方法加上@ExceptionHandler(xxxException.class)注解,该方法可以处理接口抛出的xxxException.
@ControllerAdvice(assignableTypes= HyUserBanController.class)可以设置只捕获对应接口抛出的异常,不设置则捕获全部接口的。
优先级
这些异常处理类的调用优先级是直接按照包结构从上到下顺序调用第一个满足条件的类,即在前面的类会被优先调用;在类的内部,按照ExceptionHandler注解设定的异常的精确度来确定使用哪个,设置的异常越精确,优先级越高。如果类里面没有可以解决的方法,则继续扫描下一个类,一直到找到进行异常处理,或者没有则不处理。
注意
同一个类里面,同一个异常只能被一个方法捕获,否则启动会报错。
建议
使用的时候异常尽量设置精确一点,最好使用自定义异常,同一个异常只捕获一次,防止调用异常处理方法调错。