springboot--(3)捕捉全局異常

這裏要介紹的是 捕捉 從controller進來後的全部異常。
#1.新建異常類
新建一個異常類,捕獲到異常了,都會走這個類,在這個類裏定義方法,返回異常信息。代碼以下java

package com.test.cms.api.controller;

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

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

/**
 * Created by Administrator on 2017/5/7 0007.
 */
@RestControllerAdvice
public class GlobalExceptionHandler {
    /**
     * 處理全局異常
     * @param exception
     * @return
     */
    @ExceptionHandler(value = Exception.class)
    public Map<String,Object> handlerGlobalException(Exception exception){
        Map<String,Object> map = new HashMap();
        exception.printStackTrace();
        map.put("code","0002");
        map.put("message","系統錯誤,請查看日誌!");
        return map;
    }
}

備註:該類必需要放在掃描器能夠掃描到的package下面。
#2.測試類web

package com.test.cms.api.controller;

import com.test.cms.api.vo.TestDemo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by Administrator on 2017/4/30 0030.
 */
@RestController
@RequestMapping("/api/test")
public class TestController {

    @RequestMapping()
    public String test(){
        String cc = "";
        int dd = 100/0;
        return cc;
    }
}

很明顯請求進來,代碼走到 int dd=100/0這行要出錯。
#3.請求結果
輸入圖片說明 很明顯,異常類捕獲到了這個異常。spring

相關文章
相關標籤/搜索