2018.4.24开发遇到的问题

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;
           
     }
原文地址:https://www.cnblogs.com/cjjjj/p/8929094.html