@ControllerAdvice这是一个增强的 Controller。使用这个 Controller ,可以实现三个方面的功能:
- 全局异常处理
- 全局数据绑定
- 全局数据预处理
第一步:采用@ControllerAdvice现在用它来做下全局异常处理,代码如下:
package com.springboot.exceptionHandler;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.Map;
@ControllerAdvice
public class MyGlobalExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseBody
public Map<String,Object> customException(Exception e) {
Map<String,Object> result=new HashMap<String,Object>();
result.put("erroeCode","500");
result.put("errorMsg","系统错误");
return result;
}
}
第二步:编写一个会抛异常的方法:
@RequestMapping("/errorCtl")
public String errorCtl(){
int a=1/0;
return a+"";
}
第三步:在浏览器上输入http://127.0.0.1:8080/errorCtl 返回如下结果,表示全局异常捕获已经搞定。
如果我们把异常捕获的bean去掉,再去 请求http://127.0.0.1:8080/errorCtl,则展示结果应该是英文
当然我们这里是测试而已,如果是真正的项目开发,这里会跳转到一个错误处理界面。