簡單了解SpringMVC全局異常處理常用方法
項目中,可能會拋出多個異常,我們不可以直接將異常的堆棧信息展示給用戶,有兩個原因:
- 用戶體驗不好
- 非常不安全
所以,針對異常,我們可以自定義異常處理,SpringMVC 中,針對全局異常也提供了相應(yīng)的解決方案,主要是通過 @ControllerAdvice 和@ExceptionHandler 兩個注解來處理的。
以上傳大小超出限制為例,自定義異常,只需要提供一個異常處理類即可:
@ControllerAdvice//表示這是一個增強版的 Controller,主要用來做全局數(shù)據(jù)處理 public class MyException { @ExceptionHandler(Exception.class) public ModelAndView fileuploadException(Exception e) { ModelAndView error = new ModelAndView("error"); error.addObject("error", e.getMessage()); return error; } }
在這里:
- @ControllerAdvice 表示這是一個增強版的 Controller,主要用來做全局數(shù)據(jù)處理
- @ExceptionHandler 表示這是一個異常處理方法,這個注解的參數(shù),表示需要攔截的異常,參數(shù)為 Exception 表示攔截所有異常,這里也可以具體到某一個異常,如果具體到某一個異常,那么發(fā)生了其他異常則不會被攔截到。
- 異常方法的定義,和 Controller 中方法的定義一樣,可以返回 ModelAndview,也可以返回 String 或者 void
例如如下代碼,指揮攔截文件上傳異常,其他異常和它沒關(guān)系,不會進入到自定義異常處理的方法中來。
@ControllerAdvice//表示這是一個增強版的 Controller,主要用來做全局數(shù)據(jù)處理 public class MyException { @ExceptionHandler(MaxUploadSizeExceededException.class) public ModelAndView fileuploadException(MaxUploadSizeExceededException e) { ModelAndView error = new ModelAndView("error"); error.addObject("error", e.getMessage()); return error; } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
spring.mvc.servlet.load-on-startup屬性方法源碼解讀
這篇文章主要介紹了spring.mvc.servlet.load-on-startup的屬性方法源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12Kotlin 語言中調(diào)用 JavaScript 方法實例詳解
這篇文章主要介紹了Kotlin 語言中調(diào)用 JavaScript 方法實例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06java利用Apache commons codec進行MD5加密,BASE64加密解密,執(zhí)行系統(tǒng)命令
這篇文章主要介紹了java利用apache Commons包進行MD5加密,BASE64加密解密與執(zhí)行系統(tǒng)命令希望對大家有用2017-12-12詳解Java多態(tài)對象的類型轉(zhuǎn)換與動態(tài)綁定
這篇文章主要介紹了詳解Java多態(tài)對象的類型轉(zhuǎn)換與動態(tài)綁定,是Java入門學習中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09