日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 默认站点!

默认站点

當前位置: 首頁 >

ssm 异常捕获 统一处理_SSM 统一异常处理

發布時間:2023/11/27 32 豆豆
默认站点 收集整理的這篇文章主要介紹了 ssm 异常捕获 统一处理_SSM 统一异常处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SSM 統一異常處理

spring創建中, 處理異??梢允褂胻ry-cache處理, 也可以使用spring提供的統一異常處理

在spring中, 統一處理異常有2中方式

注解方式

@ExceptionHandler 作用于方法上

@controlleradvice 作用于類上

接口方式

HandlerExceptionResolver 接口

注解方式

注解方式用起來也是比較方便的, 注解方式有兩種

@ExceptionHandler單獨使用, 前提是拋出異常的方法和處理異常的方法在同一個controller下

@controlleradvice和@ExceptionHandler 配合使用, 如果當前controller下沒有處理異常的方法, 則去找@controlleradvice描述的類下面處理異常的方法

單獨使用@ExceptionHandler

此方式僅限于處理異常的方法和拋出異常的方法在同一個controller里

次注解的參數是可以處理異常的類型字節碼對象, 例如寫RuntimeException.class則處理此異常以及其子類的異常, 處理異常的方法參數和注解的參數類型一般來說是一致的.

@Controller

public class GlobalController {

/**

* 用于處理異常的

*/

@ExceptionHandler({MyException.class})

public String exception(MyException e) {

System.out.println(e.getMessage());

e.printStackTrace(); // 控制臺打印報錯信息

return "exception";

}

// 此請求會拋出異常

@RequestMapping("/index")

public String test() {

throw new MyException("出錯了!");

return "index";

}

}

使用 @ControllerAdvice+ @ ExceptionHandler 注解

@ ExceptionHandler 需要進行異常處理的方法必須與出錯的方法在同一個Controller里面。那么當代碼加入了 @ControllerAdvice,則不需要必須在同一個 controller 中了。這也是 Spring 3.2 帶來的新特性。從名字上可以看出大體意思是控制器增強。 也就是說,@controlleradvice + @ ExceptionHandler 也可以實現全局的異常捕捉。

/**

* @ControllerAdvice 注解描述的類, spring mvc會分為他是

* 一個控制層全局異常的處理

*/

@ControllerAdvice

public class GlobalExceptionHandler {

/**

* @ExceptionHandler 注解描述的方法為異常處理方法,

* 次注解中定義的異常類型, 為這個方法可以處理的異常類型, 它可以處理

* 此異常以及這個異常類型的子類類型的異常

* @param e

* @return

*/

@ExceptionHandler(RuntimeException.class)

@ResponseBody // 告訴spring mvc最終相應結果轉換為json格式返回, 如果返回的是頁面可不寫次注解

public JsonResult doHandleRuntimeException(RuntimeException e) {

e.printStackTrace();

return new JsonResult(e);

}

// .....等多個處理異常的方法

}

實現 HandlerExceptionResolver 接口

即mvc中所有的異常都可以在這里進行處理

@Component

public class ExceptionTest implements HandlerExceptionResolver{

/**

* TODO 簡單描述該方法的實現功能(可選).

* @see org.springframework.web.servlet.HandlerExceptionResolver#resolveException(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object, java.lang.Exception)

*/

public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,

Exception ex) {

System.out.println("This is exception handler method!");

return null;

}

}

總結

以上是默认站点為你收集整理的ssm 异常捕获 统一处理_SSM 统一异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得默认站点網站內容還不錯,歡迎將默认站点推薦給好友。