SpringBoot 全局捕获异常

全局捕获异常:整个 Web 请求项目全局捕获异常

@ExceptionHandler:表示拦截异常

  • @ControllerAdvice 是 controller 的一个辅助类,最常用的就是作为全局异常处理的切面类
  • @ControllerAdvice 可以指定扫描范围
  • @ControllerAdvice 约定了几种可行的返回值,如果是直接返回 model 类的话,需要使用@ResponseBody 进行 json 转换
    • 返回 String,表示跳到某个 view
    • 返回 modelAndView
    • 返回 model + @ResponseBody
实例
package com.xiaoming.error;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

/**
 * 全局捕获异常处理器
 * 1.捕获返回 json 格式
 * 2.捕获返回页面
 *
 * @ControllerAdvice springboot 异常切入点
 * @ResponseBody 返回Json 格式
 * @ModelAndView 返回视图页面
 * @ExceptionHandler(RuntimeException.class) 拦截错误   会拦截运行时异常
 */
@ControllerAdvice(basePackages = "com.xiaoming.controller")
public class GlobalExceptionHandler {

    @ExceptionHandler(RuntimeException.class)
    @ResponseBody
    public Map<String, Object> errorrResult(){
        //实际开发项目中,怎么做的? 会将错误记录在日志中。通过定时任务检查出比较重要的错误,存放在mangodb中,在后台发送给运营人员
        HashMap<String, Object> errorResultMap = new HashMap<>();
        errorResultMap.put("errorCode", "500");
        errorResultMap.put("errorMsg", "系统错误");
        return errorResultMap;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值