1. 程式人生 > >@Validated引數校驗,異常資訊封裝成JSON返回給前端

@Validated引數校驗,異常資訊封裝成JSON返回給前端

在之前,曾經寫過一篇部落格對於@Validated的使用說明,但是對於引數校驗不通過之後的異常資訊,又如何封裝到一個JSON物件返回給前端呢?

controller層的程式碼:

如圖所示,如果我們僅僅使用@Validated進行校驗,但是不做任何其他處理,使用postman模擬前端請求,最終返回給前端的是這樣的:

在實際的專案開發中,這樣明顯不可取。

解決方案:寫一個spring的統一異常處理,使用@ExceptionHandler註解標註,這裡我還對所有的異常欄位都列印了出來

返回結果:

注意:

(1)這裡@ControllerAdvice註解標註,@ControllerAdvice是@Controller的增強版,一般與@ExceptionHandler搭配使用。

如果標註@Controller,異常處理只會在當前controller類中的方法起作用,但是使用@ControllerAdvice,則全域性有效。

(2)@ExceptionHandler註解裡面填寫想要捕獲的異常類class物件