码迷,mamicode.com
首页 > 编程语言 > 详细

170621、springboot编程之全局异常捕获

时间:2017-08-21 14:48:32      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:build   .com   r.java   lte   alibaba   .class   imp   return   out   

1、创建GlobalExceptionHandler.java,在类上注解@ControllerAdvice,在方法上注解@ExceptionHandler(value = Exception.class),Exception.class表示拦截所有的异常信息


package com.rick.common.handler;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.util.IOUtils;
import com.rick.common.ResultJson;
import com.rick.common.exception.BusinessException;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;

@ControllerAdvice
public class GlobalExceptionHandler {

@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex){
response.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE);
System.out.println("=====================全局异常信息捕获=======================");

String msg;
if(ex instanceof BusinessException){
msg = ex.getMessage();
} else {
msg = "操作异常!";
}
ex.printStackTrace();
PrintWriter out = null;
try {
out = response.getWriter();
out.print(JSON.toJSON(ResultJson.buildFailInstance(msg)).toString());
} catch(Exception e){
e.printStackTrace();
} finally {
IOUtils.close(out);
}

return null;
}
}

2、测试异常信息,在 HelloController.java中制造异常信息

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(){
        System.out.println(1/0);//制造异常信息
        return "Hello World!";
    }
}

3、效果展示

访问http://localhost:8080/hello,后台抛出异常信息

技术分享

页面展示效果

技术分享

 

170621、springboot编程之全局异常捕获

标签:build   .com   r.java   lte   alibaba   .class   imp   return   out   

原文地址:http://www.cnblogs.com/zrbfree/p/7404018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!