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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

springmvc异常处理器

發布時間:2024/7/19 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springmvc异常处理器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

springmvc在處理請求過程中出現異常信息交由異常處理器進行處理,自定義異常處理器可以實現一個系統的異常處理邏輯。

1 異常處理的思路

系統中異常包括兩類:預期異常運行時異常RuntimeException,前者通過捕獲異常從而獲取異常信息,后者主要通過規范代碼開發、通過測試手段減少運行時異常的發生。

系統的daoservicecontroller出現都通過throws Exception向上拋出,最后由springmvc前端控制器交由異常處理器進行異常處理,如下圖:

2 自定義異常類

為了區別不同的異常,通常根據異常類型進行區分,這里我們創建一個自定義系統異常。

如果controller、service、dao拋出此類異常說明是系統預期處理的異常信息。

package com.test.springmvc.exception;public class MyException extends Exception{private String message;public MyException() {super();}public MyException(String message) {super();this.message = message;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}

3 自定義異常處理器

public class CustomHandleException implements HandlerExceptionResolver {@Overridepublic ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,Exception exception) {// Object handler:指定是發生異常的地方,包名+類名+方法名(形參) 字符串 // 定義異常信息 String msg;// 判斷異常類型if (exception instanceof MyException) {// 如果是自定義異常,讀取異常信息msg = exception.getMessage();} else {// 如果是運行時異常,則取錯誤堆棧,從堆棧中獲取異常信息Writer out = new StringWriter();PrintWriter s = new PrintWriter(out);exception.printStackTrace(s);msg = out.toString();}// 把錯誤信息發給相關人員,郵件,短信等方式// TODO// 返回錯誤頁面,給用戶友好頁面顯示錯誤信息ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("msg", msg);modelAndView.setViewName("error");return modelAndView;} }

4 異常處理器配置

springmvc.xml中添加:

<!-- 配置全局異常處理器 --> <bean id="customHandleException" class="com.test.ssm.exception.CustomHandleException"/>

5 準備一個錯誤頁面

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body><h1>${msg}</h1> </body> </html>

6 異常測試

/*** 查詢商品列表* * @return* @throws Exception*/ @RequestMapping(value = { "itemList", "itemListAll" }) public ModelAndView queryItemList() throws Exception {// 自定義異常if (true) {throw new MyException("自定義異常出現了~");}// 運行時異常int a = 1 / 0;// 查詢商品數據List<Item> list = this.itemService.queryItemList();// 創建ModelAndView,設置邏輯視圖名ModelAndView mv = new ModelAndView("itemList");// 把商品數據放到模型中mv.addObject("itemList", list);return mv; }

?

?

?

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/jepson6669/p/9038669.html

總結

以上是生活随笔為你收集整理的springmvc异常处理器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。