這裏要介紹的是 捕捉 從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