spring boot全局捕获异常
spring boot全局捕获异常
制作人:全心全意
@ExceptionHandler:标识拦截异常
@ControllerAdvice:Controller的一个辅助类,最常用的就是作为全局异常处理的切面类
@ControllerAdvice可以指定扫描范围
@ControllerAdvice约定了几种可行的返回值,如果是直接返回model类的话,需要使用@ResponseBody进行json转换
返回String值,标识跳转到view
返回modelAndView
返回model+@ResponseBody
捕获异常类
package com.zq.main.controller; import java.util.HashMap; import java.util.Map; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; @ControllerAdvice //仅能捕获系统代码出现的问题,例如500(404无法捕获) public class ZqExceptionHandler { // 拦截系统的所有异常 @ExceptionHandler(RuntimeException.class) @ResponseBody public Map<String, String> exceptionHandler() { System.out.println(11111); HashMap<String, String> objectHashMap = new HashMap<>(); objectHashMap.put("respCode", "500"); objectHashMap.put("respMsg", "系统错误"); return objectHashMap; } }