springmvc學習筆記(30)——@ResponseStatus註解處理異常
阿新 • • 發佈:2018-12-15
一、ResponseStatus修飾類
ResponseStatus註解的使用非常簡單,我們建立一個異常類,加上註解
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(value=HttpStatus.FORBIDDEN,reason="使用者不匹配")
public class UserNotMatchException extends RuntimeException{
}
- ResponseStatus註解是修飾類的
value:value屬性是http狀態碼,比如404,500等
reason:是錯誤資訊
寫一個目標方法丟擲該異常
@RequestMapping("/testResponseStatus") public String testResponseStatus(int i){ if(i==0) throw new UserNotMatchException(); return "hello"; }
當傳入引數i==0的時候將拋異常。下圖是效果圖
使用了ResponseStatus註解之後,使用者看到的異常介面正是我們自己定義的異常,而不再是一大堆使用者看不懂的程式碼。
二、ResponseStatus修飾方法
ResponseStatus如果修飾目標方法,將會發生什麼事。
@ResponseStatus(value=HttpStatus.FORBIDDEN,reason="使用者名稱不匹配") @RequestMapping("/testResponseStatus") public String testResponseStatus(int i){ if(i==0) throw new UserNotMatchException(); return "hello"; }
- 仔細看這張結果圖中的訪問路徑,我傳入的引數是i=1,正常來說是不應該拋異常的,可是它拋了。。它真的拋了。。
- 結論:ResponseStatus修飾目標方法,無論它執行方法過程中有沒有異常產生,使用者都會得到異常的介面。而目標方法正常執行