这里要介绍的是 捕捉 从controller进来后的全部异常。
#1.新建异常类
新建一个异常类,捕获到异常了,都会走这个类,在这个类里定义方法,返回异常信息。代码以下java
package com.test.cms.api.controller; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import java.util.HashMap; import java.util.Map; /** * Created by Administrator on 2017/5/7 0007. */ @RestControllerAdvice public class GlobalExceptionHandler { /** * 处理全局异常 * @param exception * @return */ @ExceptionHandler(value = Exception.class) public Map<String,Object> handlerGlobalException(Exception exception){ Map<String,Object> map = new HashMap(); exception.printStackTrace(); map.put("code","0002"); map.put("message","系统错误,请查看日志!"); return map; } }
备注:该类必需要放在扫描器能够扫描到的package下面。
#2.测试类web
package com.test.cms.api.controller; import com.test.cms.api.vo.TestDemo; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Administrator on 2017/4/30 0030. */ @RestController @RequestMapping("/api/test") public class TestController { @RequestMapping() public String test(){ String cc = ""; int dd = 100/0; return cc; } }
很明显请求进来,代码走到 int dd=100/0这行要出错。
#3.请求结果
很明显,异常类捕获到了这个异常。spring