SpringBoot学习笔记(四)-全局捕获异常

  1. try catch 异常捕获
    正常方法中,对于可能会发生异常的方法,我们使用try catch 去捕获它,在catch里面做处理:
@RestController
public class ErrorController {
	
	@RequestMapping("/ErrorRes")
	public String ErrorRes(int i){
		int j = 2;
		try {
			j = 1/i;
		} catch (Exception e) {
			return "系统错误";
		}
		return "Success"+j;
	}
}
  1. SpringBoot中的AOP切面技术捕获全局异常
    实际开发中,不会去每个异常都使用try catch,而且难免有未想到的异常忘记捕获,设定一个全局捕获异常类可是少些很多代码:

注:切面类也要放在启动类能扫到的范围内

/*@ControllerAdvice 捕获全局异常注解,可设置扫包范围
 *@RestControllerAdvice = @ControllerAdvice + @RequestMapping
 */
@ControllerAdvice(basePackages="com.gxl.gree.controller")

public class CatchAllError {
	/*@ExceptionHandler(RuntimeException.class) 返回运行时异常*/
	/*@ResponseBody 返回JSON格式
	 *@modeAndView  返回页面(没找到这个注解,不写@ResponseBody,加上运行时异常,按访问jsp页面方法写)
	 */
//  返回JSON
	@ExceptionHandler(RuntimeException.class)
	@ResponseBody
	public Map<String, Object> errorResult(){
		Map<String, Object> errorResultMap = new HashMap<String, Object>();
		errorResultMap.put("errorCode", "500");
		errorResultMap.put("errorMsg", "系统错误!!!");
		return errorResultMap;
	}
	
//  返回页面
//	@ExceptionHandler(RuntimeException.class)
//	public String errorResult(){
//		return "hellojsp";
//	}
}

  1. 单独的Spring配置AOP切面类
    主要是涉及配置Speing.xml和切面类的写法
    参考地址:
    https://www.cnblogs.com/biehongli/p/6640406.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值