SpringBoot笔记系列:(四)SpringBoot全局捕获异常

本文详细介绍了在Spring Boot中如何使用全局异常处理机制捕获并处理异常,确保用户接收到易于理解的错误信息,同时展示了如何通过@ControllerAdvice注解实现这一功能,并通过示例代码展示具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是全局捕获异常?
在进行web开发时,我们不能把异常信息直接返回给客户查看,例如404,500等错误,用户并不知道这些是什么错误,应该使用全局捕获异常对异常信息进行捕获处理,返回用户可以看懂的错误信息。

@ControllerAdvice:

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

@RestControllerAdvice:

  1. @RestControllerAdvice = @ControllerAdvice + @ResponseBody
package top.pcstar.springboothelloworld.exception;

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

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

/**
 * @Author: PanChao
 * @Description: 全局捕获异常
 * @Date: Created in 10:31 2018/7/15
 */
//@ControllerAdvice
@RestControllerAdvice
public class GlobalExceptionHandle {
    @ExceptionHandler(RuntimeException.class)
//    @ResponseBody
    public Map<String, Object> resultError() {
        Map<String, Object> result = new HashMap<>();
        result.put("errorCode", "500");
        result.put("errorMsg", "系统错误");
        return result;
    }
}

这样在系统中一旦出现RuntimeException异常时,系统将执行全局异常处理,将处理后的数据返回给客户端。

SpringBoot笔记系列目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值