SpringBoot全局捕獲異常

代碼

1、控制器出現異常的方法

@RequestMapping("/testException")
public String testException(){
   int j = 10/0;
   return "testException";
}

2、新建一個處理異常的類GlobalHandlerException.java

package com.zl.exception;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;

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

/**
 * 控制器異常處理類
 */
@ControllerAdvice
public class GlobalHandlerException {
    @ExceptionHandler(ArithmeticException.class)   // 當出現算術異常的時候都會進入這個方法來處理
    @ResponseStatus(value= HttpStatus.INTERNAL_SERVER_ERROR) // 返回狀態碼
    @ResponseBody // 返回json
    public Map<String,Object>  testException(ArithmeticException ex){
        Map<String,Object> result = new HashMap<>();
        result.put("code",HttpStatus.INTERNAL_SERVER_ERROR.value());
        result.put("msg",ex.getMessage());
        return result;
    }
}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章