美文网首页
统一异常处理(耦合项目)

统一异常处理(耦合项目)

作者: 神豪VS勇士赢 | 来源:发表于2018-08-10 21:17 被阅读24次

对外:友好页面提示。
对内:看日志定位问题:

对异常的收集[日志,日志系统]与处理分析
线上的问题很多时候需要看异常日志。

springmvc提供全局异常处理器
系统遇到异常,可以从底层往外层抛出,dao抛给service、service给controller、controller抛给前端控制器,前端控制器调用全局异常处理器。
在表现层统一处理项目的异常。

开发流程:(响应到页面)
第一步:开发自定义异常类
public class PageException extends Exception {
private String errMsg;

public PageException(String errMsg) {
    super(errMsg);
    this.errMsg = errMsg;
}

public String getErrMsg() {
    return errMsg;
}

public void setErrMsg(String errMsg) {
    this.errMsg = errMsg;
}

}

第二步:开发统一异常处理Handler
实现HandlerExceptionResolver接口
响应异常信息到统一错误友好提示页面

public class ExceptionHandler implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
ModelAndView modelAndView=new ModelAndView();

    PageException pageException=null;

    if(ex instanceof  PageException){
        pageException = (PageException) ex;
    }else{
        pageException =new PageException("系统繁忙");
    }
    modelAndView.addObject("msg",pageException.getMessage());
    modelAndView.setViewName("error");

    return modelAndView;
}

}

第三步:开发异常页面

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
对不起,${msg} ,请稍后访问
</body>
</html>

注意:error 页面 所载文件的位置


image.png

第四步:配置异常处理Handler
applicationContext.xml 中配置 :
<bean class="com.zyh.handler.ExceptionHandler"></bean>

第五步:开发Action测试异常
业务抛出自定义异常

@Controller
@RequestMapping("/error")
public class ErrorController {

@RequestMapping("/errorPage.do")
public String  errorPage() throws PageException {

    try {
        int i=1/0;
    } catch (Exception e) {
        e.printStackTrace();
        throw  new PageException("抱歉这个是计算错误");
    }
    return "index";
}

}

相关文章

  • 统一异常处理(耦合项目)

    对外:友好页面提示。对内:看日志定位问题: 对异常的收集[日志,日志系统]与处理分析线上的问题很多时候需要看异常日...

  • spring/springmvc 全局异常处理

    1.在项目中为什么要统一异常处理 当异常返回到前端页面的时候可以统一处理,避免前端无法处理异常 不做统一异常处理,...

  • HandlerExceptionResolver原理分析

    通常在项目中我们都会做统一的异常处理,那么今天我们就来分析下自定义异常处理的原理。 若有不知道怎么自定义统一的异常...

  • Spring Boot简明教程--全局异常处理

    实现思路 为了统一开发过程中的异常处理方式和返回值,需要为项目制定统一的全局异常处理。在SpringBoot中全局...

  • 统一异常处理

    一、什么是统一异常处理 1、制造异常 2、什么是统一异常处理我们想让异常结果也显示为统一的返回结果对象,并且统一处...

  • ssh项目实战----统一异常处理

    一、概述 在项目中总会出现各种异常、bug,为了使得用户体验更好,当系统出现异常的时候,我们需要有我们的处理方式,...

  • 项目中统一异常处理

    在开发时,难免各种if else代码判断用户请求是否包含***,那么我们如何让用户更清楚的知道自己要干什么,错在哪...

  • springboot全局异常处理

    一、单个controller范围的异常处理/** 统一异常处理 @return*/@RequestMapping(...

  • SpringCloud @ControllerAdvice通用异

    Springcloud 项目 common组件写的 全局捕获异常不执行,原因如下:问题配置异常统一处理时,发现无法...

  • springboot之统一异常处理

    spring统一异常处理 使用spring的统一异常处理,我们就不再需要在业务代码中就行显式的捕获异常处理,在da...

网友评论

      本文标题:统一异常处理(耦合项目)

      本文链接:https://www.haomeiwen.com/subject/dnnlbftx.html