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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring全局异常捕捉实现HandlerExceptionResolver接口,在error-page配置捕捉异常

發(fā)布時(shí)間:2025/3/20 javascript 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring全局异常捕捉实现HandlerExceptionResolver接口,在error-page配置捕捉异常 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

方式一

1.1 ?創(chuàng)建全局異常類

該類要實(shí)現(xiàn)HandlerExceptionResolver接口,詳細(xì)如下:

package com.rbc.hbms.util;import java.util.HashMap; import java.util.Map;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView;/*** 捕捉全局異常并輸出* @author MoXingJian* @email 939697374@qq.com* @date 2017年8月16日 上午10:01:40* @version 1.0*/public class GobalExceptionResolver implements HandlerExceptionResolver{@Overridepublic ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object object,Exception ex) {String message = ex.getMessage();Throwable cause = ex.getCause();System.out.println("進(jìn)入全局異常");//以下信息一般存進(jìn)日志,這里作為簡(jiǎn)單測(cè)試System.out.println("異常類型=" + ex.getClass().getSimpleName());System.out.println("異常描述=" + message);System.out.println("異常原因=" + cause);/*** 測(cè)試的時(shí)候可以把錯(cuò)誤信息輸出到頁(yè)面,真正給客戶使用的時(shí)候,* 千萬(wàn)不要這樣做,給別人印象不好,別人以為你的系統(tǒng)老是出問(wèn)題。* 可以適當(dāng)?shù)靥崾尽跋到y(tǒng)繁忙”或者“你訪問(wèn)的頁(yè)面不存在”之類的。*/Map<String, Object> model = new HashMap<String, Object>();model.put("ex", ex);/*** 可以根據(jù)需要,不同的異常跳轉(zhuǎn)到不同的頁(yè)面。* 例如,dao層異常,可以跳到“數(shù)據(jù)庫(kù)異常頁(yè)面”。* service層異常,可以跳轉(zhuǎn)到“業(yè)務(wù)異常頁(yè)面”。* 找不到頁(yè)面異常,可以跳轉(zhuǎn)到404頁(yè)面。等等*/return new ModelAndView("error", model);}}

1.2 ?配置

在Spring配置文件中配置該類

<!-- 全局異常配置 --><bean id="GobalExceptionResolver" class="com.rbc.hbms.util.GobalExceptionResolver"/>

1.3 ?測(cè)試

在service層捕捉一個(gè)未做處理的異常

int i = 10/0;

效果如下:



方式二


在方式一的 基礎(chǔ)上再優(yōu)化

2.1配置訪問(wèn)路徑

首先分別在類名和方法名寫(xiě)好訪問(wèn)路徑

類名

@Controller @RequestMapping("/sysmgr/gobalExceptionResolver.action") public class GobalExceptionResolver implements HandlerExceptionResolver {

方法

@Override@RequestMapping(params = "method=resolveException")public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object object,Exception ex) {

2.2 異常捕捉

在web.xml配置,如下

<error-page><exception-type>java.lang.Exception</exception-type><location>/sysmgr/gobalExceptionResolver.action?method=resolveException</location></error-page>

只要是該異常下的都會(huì)通過(guò)該路徑找到。














總結(jié)

以上是生活随笔為你收集整理的Spring全局异常捕捉实现HandlerExceptionResolver接口,在error-page配置捕捉异常的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。