首页 > 其他分享 >SpringBoot中定义全局异常处理器

SpringBoot中定义全局异常处理器

时间:2023-03-24 18:06:56浏览次数:39  
标签:SpringBoot demo springframework 处理器 org import 全局 com example


场景

SpringBoot中创建全局异常处理器,使发生异常时能处理。

实现

在项目下新建handler包,在包下新建GlobalExceptionHnadler.java

package com.example.demo.handler;

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
public class GlobalExceptionHandler {
 
 @ExceptionHandler(Exception.class)
 @ResponseBody
 public Map<String,Object> handlerExcception(Exception e) {
  Map<String,Object> map = new HashMap<>();
  map.put("code",500);
  map.put("message",e.toString());
  return map;
 }
}

通过添加注解@ControllerAdvice实现。

@ExceptionHandler(Exception.class)声明处理异常的种类,这里是所有异常。

新建Controller进行测试

package com.example.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestHandlerController {
 @RequestMapping("/testHandler")
 @ResponseBody
 public String show()
 {
  int a=5/0;
  return "testHandler";
 }
}

在项目启动类中添加handler包为扫描包。

@SpringBootApplication(scanBasePackages= {"com.example.demo.controller","com.example.demo.service","com.example.demo.interceptor","com.example.demo.handler"})

启动项目,访问

http://localhost:8080/testHandler

效果

SpringBoot中定义全局异常处理器_全局异常处理器


标签:SpringBoot,demo,springframework,处理器,org,import,全局,com,example
From: https://blog.51cto.com/BADAOLIUMANGQZ/6147606

相关文章