1. 碰到了一个极其奇怪的问题
No constructor found in javax.management.relation.Role matching [java.lang.Integer, java.lang.String]
结果发现是引用的Role包出错了,我是不是傻子???
2. 又遇到另外一个问题:
我在切面中抛出自己创建的异常,最后用spring boot的统一异常处理代码来处理异常,结果发现总是没办法获取到异常。报错如下:
java.lang.reflect.UndeclaredThrowableException
结果发现,其实是代理模式(Proxy)搞得鬼,Proxy给我们的异常外面添加了一层外套,然后自己定义的代码就没办法识别它了,所以我是这样解决的。
@ExceptionHandler(value = Exception.class) @ResponseBody public ModelAndView handler( Exception e){ ModelAndView modelAndView = new ModelAndView(); RequestException requestException = (RequestException) e.getCause();//通过getCause()函数来获取最初的造成异常的原因,这样就能正确的处理我们自己定义的异常了,真的是很秀啊 modelAndView.addObject("error",requestException.getError().errorMessage); modelAndView.setViewName("html/error"); return modelAndView; }