新建包com.chy.exception,包下新建类GlobalExceptionHandler:
@ControllerAdvice //controller的增强 public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) //给controller添加异常处理,括号中指定要捕获处理哪种异常,Exception.class表示处理所有种类的异常 @ResponseBody //返回给浏览器显示出来 public Map<String,String> handler1(Exception e){ //如果要使用异常对象,可以作为参数传入异常对象 Map<String, String> map = new HashMap<>(2); map.put("errorCode", "01"); map.put("errorMsg", "系统发生错误!"); //可以传回自定义的信息,也可以传回e.getMessage() return map; } }
浏览器中的显示:
因为我们添加@ResponseBody,不管返回map、String,都会转换为json形式。
- 可以编写多个方法,来处理不同种类的异常
- 可以像上面一样直接返回一段文本,也可以调用视图
- 处理的是未经捕获的、抛到controller的异常