分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

WEB 项目中的全局异常处理

发布时间:2023-09-06 01:09责任编辑:苏小强关键词:暂无标签

  在web 项目中,遇到异常一般有两种处理方式:try.....catch....;throw

  通常情况下我们用try.....catch.... 对异常进行捕捉处理,可是在实际项目中随时的进行异常捕捉,会造成代码重复和繁杂,我们希望代码中只有业务相关的操作,所有的异常我们单独设立一个类来处理它。

  首先,我们在可能发生异常的方法,全部throw出来,即dao抛给service、service给controller、controller抛给前端控制器;

  然后由前端控制器调用 全局异常处理器  对异常进行统一处理

  

  全局异常处理器处理思路:

    首先解析出异常类型;

      如果该 异常类型是系统 自定义的异常,直接取出异常信息,在错误页面展示

      如果该 异常类型不是系统 自定义的异常,构造一个自定义的异常类型(信息为“未知错误”)(应为一般业务异常我们并不希望被用户知道,防止代码泄露,造成不安全)

      自定义异常一般是业务异常,这个异常的信息应该告知客户,系统异常一般是代码异常,一般写日志

  SpringMVC提供一个HandlerExceptionResolver接口,全局异常处理器实现此接口

   定义一个全局异常处理类:将客户异常的消息放入ModelAndView的model中,并在error页面中显示出来

public class ExceptionResolver implements HandlerExceptionResolver{  //该方法的的参数会自动获取 请求(request),响应(response),异常(exception),handler(异常参数的处理器 Controller) ???public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, ???????????Exception ex) { ???????ModelAndView mav = new ModelAndView(); ???????if(ex instanceof CustomException){ ???????????//用户异常 ???????????mav.addObject("message", ex.getMessage()); ???????????mav.setViewName("error"); ???????}else{
       //系统异常 ???????????mav.addObject("message", "系统出现异常,请稍后访问"); ???????????mav.setViewName("error"); ???????} ???????return mav; ???}}

    在SpringMVC中生成该对象:

<!--配置异常对象处理器 ?该类要实现HandlerExceptionResolver接口 ?--> ?????????<bean class="com.lh.excrption.ExceptionResolver"></bean>

WEB 项目中的全局异常处理

原文地址:http://www.cnblogs.com/lhblogs/p/7489246.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved