微服务,微架构[七]之springboot异常处理

来源:互联网 发布:linux 系统启动脚本 编辑:程序博客网 时间:2024/05/14 14:06

描述:

       项目应用过程中总会有错误的异常发生,在开发的整体架构中也会有对应的处理机制,那springboot是如何解决此问题呢

注解:

   @ControllerAdvice 是Controller的辅助注解,可以返回特定的控制器或者异常,可以配置扫描的路径,也可以指定异常类型

    @ExceptionHandler 可以接受任意异常信息,如果定在Controller中,表示只对Controller层的异常进行捕获,也可以指定异常的类型,Demo.class,表示只捕获demo类型的  异常结果

示例代码

@ControllerAdvicepublic class GExceptionHandler {    /**     * 捕获Exception 及 子异常 ,不能捕获 Throwable异常     *      * @Title: defaultErrorHandler     * @param req     * @param e     * @return     * @throws Exception     *     */    @ExceptionHandler(value = Exception.class)    public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {        ModelAndView mav = new ModelAndView();        mav.setViewName("error");// 返回error.html页面        return mav;    }    /**     * 只捕获 MyException 异常错误信息处理,并且返回json格式数据,适用于ajax 异常处理方式     *      * @Title: jsonErrorHandler     * @param req     * @param e     * @return     * @throws Exception     *     */    @ExceptionHandler(value = MyException.class)    @ResponseBody    public ErrorInfo<String> jsonErrorHandler(HttpServletRequest req, MyException e) throws Exception {        ErrorInfo<String> r = new ErrorInfo<>();        r.setMessage(e.getMessage());        r.setCode(ErrorInfo.ERROR);        r.setData("Some Data");        r.setUrl(req.getRequestURL().toString());        return r;    }}



原创粉丝点击