@ControllerAdvice
public class InternalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
public ModelAndView handleUnknowException(Exception ex) {
return new ModelAndView("500.html", Map.of("error", ex.getClass().getSimpleName(), "message", ex.getMessage()));
}
}
等效于在所有的Controller里写上了
@ExceptionHandler(RuntimeException.class)
public ModelAndView handleUnknowException(Exception ex) {
return new ModelAndView("500.html", Map.of("error", ex.getClass().getSimpleName(), "message", ex.getMessage()));
}
SNH48-刘慈欣
我甚至在琢磨怎么用Interceptor拦截Exception:用
postHandle()
吧,没法捕获Controller方法的异常,根本拿不到异常信息;用afterCompletion()
吧,ModelAndView已经渲染了,总不能自己手动再写个response吧。琢磨半天我还是放弃了,还是google吧,发现办法居然如此简单:
https://howtodoinjava.com/spring-core/spring-exceptionhandler-annotation/#4
直接写一个类里面弄上handleUnknowException方法,标注上
@ControllerAdvice
就行了:等效于在所有的Controller里写上了
另外文末的
oginException
应该是LoginException
吧