springboot全局捕获异常
1. 思路 / 原理:
全局捕获异常, 采用 AOP 技术, 采用异常通知
2. 全局捕获异常案例
(1). 捕获返回 json 格式.
(2). 捕获返回页面.(页面异常, 如: 找不到页面, 页面出错等.)
3. 加上 @ControllerAdvice( 注解具体解释 URL:https://www.cnblogs.com/lenve/p/10748453.html)
扫包范围最好扫描 Controller
@Responsebody 返回 json 格式的错误信息
注意: 但在实际企业开发过程中通常将异常信息写入日志中, 通过邮件方式发送给开发者 (存放在 Mongdb 中)
==================================================================================================================================
3. 项目代码截图:
GlobalExceptionHandler.java
package com.nantian.exception;
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(basePackages="com.nantian.controller")
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
@ResponseBody
public Map<String, Object> exceptionHandler(){
Map<String, Object> map=new HashMap<String,Object>();
map.put("errorCode", "101");
map.put("errorMsg", "系统错误");
return map;
}
}
==================================================================================================================
UserController.java
/**
* 测试全局异常
*/
@RequestMapping("/testException")
public String testException(int i) {
int j=0;
j=1/i;
return "success"+j;
}
===============================================================================================================================
测试截图: