@ExceptionHandler注解我们一般是用来自定义异常的。
可以认为它是一个异常拦截器(处理器)。
控制层TestControll调用
//方法一
@Controller
@RequestMapping("/admin")
public class TestControll extends GlobalExceptionHandler {
private Logger logger = LoggerFactory.getLogger(TestControll.class);
@Autowired
private UserInfoSerimpl userInfoSerimpl;
@ResponseBody
@RequestMapping("/test")
public String test(){
logger.info("11111111111");
userInfoSerimpl.saveUserInfo();
logger.info("2222222222");
return "sdfsfs";
}
}
public class GlobalExceptionHandler {
private final Logger logger = LogManager.getLogger(GlobalExceptionHandler.class);
@ExceptionHandler({Exception.class}) //申明捕获那个异常类
@ResponseBody
public String handleAndReturnData(Exception e) {
logger.error(e.getMessage(), e);
return "自定义异常返回";
}
}
//方法二
@Controller
@RequestMapping("/admin")
public class TestControll {
private Logger logger = LoggerFactory.getLogger(TestControll.class);
@Autowired
private UserInfoSerimpl userInfoSerimpl;
@ResponseBody
@RequestMapping("/test")
public String test(){
logger.info("11111111111");
userInfoSerimpl.saveUserInfo();
logger.info("2222222222");
return "sdfsfs";
}
}
/**
* @ControllerAdvice: 表示当前类是异常处理类,给Controller控制器类增强功能的
* 位置: 在类的上面
*/
@ControllerAdvice
public class GlobalExceptionHandler {
private final Logger logger = LogManager.getLogger(GlobalExceptionHandler.class);
@ExceptionHandler({Exception.class}) //申明捕获那个异常类
@ResponseBody
public String handleAndReturnData(Exception e) {
logger.error(e.getMessage(), e);
return "自定义异常返回";
}
}