Spring MVC 統一異常處理總結
在一個Spring MVC專案中,使用統一異常處理,可以使維護程式碼變得容易。下面總結一下常用的3種方法。
實現HandlerExceptionResolver
介面
實現HandlerExceptionResolver
介面,實現resolveException()
方法,根據傳入的異常型別做出處理。
繼承AbstractHandlerExceptionResolver
類
繼承AbstractHandlerExceptionResolver
類,和第一種方式類似,因為AbstractHandlerExceptionResolver
實現了HandlerExceptionResolver
介面。
所以,我們繼承之後也是重寫resolveException()
使用註解@ControllerAdvice
處理
推薦使用這種方法,比較直觀。下面上程式碼:
首先是自定義異常類
public class ResourceDoesNotExistException extends RuntimeException {
private static final long serialVersionUID = 7833283455112352655L;
public ResourceDoesNotExistException() {
super();
}
public ResourceDoesNotExistException (String message) {
super(message);
}
public ResourceDoesNotExistException(String message, Throwable cause) {
super(message, cause);
}
public ResourceDoesNotExistException(Throwable cause) {
super(cause);
}
protected ResourceDoesNotExistException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
}
}
然後是全域性異常統一處理類:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = OtherException.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception ex) {
// 其他異常處理邏輯...
}
@ExceptionHandler(value = ResourceDoesNotExistException.class)
public ModelAndView notFoundErrorHandler(HttpServletRequest req, ResourceDoesNotExistException ex) {
ModelAndView mav = new ModelAndView();
mav.setViewName("404");
return mav;
}
}
新增@ControllerAdvice
註解的類是集中處理異常的地方,可以同時存在多個這樣的類,用來做更細粒度的劃分。
在這個類中,我們可以對每一種異常編寫一種處理邏輯,在方法上使用@ExceptionHandler
註解修飾,傳入指定的異常型別即可。
如果是RESTful風格,不返回檢視,也可使用@RestControllerAdvice
。
相關推薦
Spring MVC 統一異常處理總結
在一個Spring MVC專案中,使用統一異常處理,可以使維護程式碼變得容易。下面總結一下常用的3種方法。 實現HandlerExceptionResolver介面 實現HandlerExcep
使用Spring MVC統一異常處理實戰
tro 處理機制 tor attr 運行 target icon message 404錯誤 原文地址:http://cgs1999.iteye.com/blog/1547197 1 描述 在J2EE項目的開發中,不管是對底層的數據庫操作過程,還是業務層的處理過程,還是控
Spring MVC 統一異常處理的兩種方式
沒有廢話,直接來。 方式一 通過@ControllerAdvice 和 @ExceptionHandler 方法。 @ControllerAdvice 這個註解,可以將對於控制器的全域性配置放到註解了@ControllerAdvice的類上,它結合了 @Component 所以可
Spring MVC 全域性異常處理-RESTAPI介面返回統一JSON格式-自定義異常處理--404異常捕捉
寫之前大概兩週草草的將一些程式碼儲存在草稿箱,今天有空來看,結果都沒有了【怨念】—重新整理一下了 —–【轉載請標註出處】 第一部分:需求 第二部分:實現方式 第三部分:404異常捕捉不能實現分析 第四部分:原因和原始碼分析 第五部分:最終總結 需求
Spring Boot? 統一異常處理
xtend import put itl ava advice efault ges spring 效果區: 代碼區: package com.wls.integrateplugs.exception.dto; public class ErrorI
MVC 統一異常處理
http 方法 ear ted public response n) text over 在出現異常時,我們不希望將錯語的原因讓客戶看見,常常會做一個404錯誤頁面,將所有發生的異常都跳至該頁面,並把異常信息寫在日誌中。步驟如下: 1、讓我們看看Global.asax頁面
spring boot 統一異常處理
res status fin erro throwable instance 拋出異常 方案 let 需求源自於任何一個業務的編寫總會有各種各樣的條件判斷,需要時時手動拋出異常,又希望讓接口返回友好的錯誤信息。 spring boot提供的幫助是自動將異常重定向到路由為/e
利用Spring進行統一異常處理的兩種方式
package com.jay.platform.exception.handler; import java.io.IOException; import java.net.ConnectException; import java.net.SocketTimeoutException; import
spring @ControllerAdvice統一異常處理 Ajax和普通請求
import com.alibaba.fastjson.JSON; import com.zh.entity.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; im
Spring MVC之異常處理
一、概況 正常情況下,請求到達服務端,服務端處理完成後返回資料結果(RESTful前後端分離)或返回頁面(傳統jsp web工程),這樣一次完整的流程就走完了。 異常情況下,如404/405/400/500/302/都是由容器或自定義頁面返回給使用者。在現在開發中(REST
Spring MVC學習-----------異常處理以及日誌記錄
如何實現全域性的異常處理? 在spring MVC的配置檔案中: Xml程式碼 <!-- 總錯誤處理--> <bean id="exceptionResolver
spring boot AOP和spring boot統一異常處理
一,spring AOPspring boot使用AOP,程式碼如下,程式碼比較簡單就不細說了,直接上程式碼,可以使用AOP做日誌處理package com.qwrt.fire.sensor.aop; import com.alibaba.fastjson.JSONArra
詳解Spring MVC/Boot 統一異常處理最佳實踐
開發十年,就只剩下這套架構體系了! >>>
Spring MVC原始碼(四) ----- 統一異常處理原理解析
SpringMVC除了對請求URL的路由處理特別方便外,還支援對異常的統一處理機制,可以對業務操作時丟擲的異常,unchecked異常以及狀態碼的異常進行統一處理。SpringMVC既提供簡單的配置類,也提供了細粒度的異常控制機制。 SpringMVC中所有的異常處理通過介面HandlerException
Spring Boot學習——統一異常處理
return 方法 ssa static framework 處理異常 tor ebo except 本隨筆記錄使用Spring Boot統一處理異常。 本文實例是從數據庫中根據ID查詢學生信息,要求學生的年齡在14——20歲之間。小於14歲,提
spring-boot實戰【07】【轉】:Spring Boot中Web應用的統一異常處理
http integer private fin ima lex clas 友好 ref 我們在做Web應用的時候,請求處理過程中發生錯誤是非常常見的情況。Spring Boot提供了一個默認的映射:/error,當處理中拋出異常之後,會轉到該請求中處理,並且該請求有一個全
spring boot 1.5.4 統一異常處理(九)
springboot springboot1.5.4 springboot整合springdatajpa springboot集成jdbctemplate springboot異常處理 上一篇:springboot 1.5.4 配置文件詳解(八) 1 Spring Boot統一異
企業分布式微服務雲SpringCloud SpringBoot mybatis (五)Spring Boot中Web應用的統一異常處理
src one exception learn 微服務 public .net 可能 訪問 我們在做Web應用的時候,請求處理過程中發生錯誤是非常常見的情況。Spring Boot提供了一個默認的映射:/error,當處理中拋出異常之後,會轉到該請求中處理,並且該請求有一個
Spring Boot中Web應用的統一異常處理
通過 提示頁面 ret oot 頁面效果 tro ctype doctype ice 我們在做Web應用的時候,請求處理過程中發生錯誤是非常常見的情況。Spring Boot提供了一個默認的映射:/error,當處理中拋出異常之後,會轉到該請求中處理,並且該請求有一個全
spring 或 springboot統一異常處理
pbo catch ada pass ann href TP let copy spring 或 springboot統一異常處理https://blog.csdn.net/xzmeasy/article/details/76150370 一,本文介紹spring MV