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