Springmvc统一异常处理

        在我们应用系统的运行过程中,可能由于运行环境,用户操作不当,资源不足等各方面原因导致系统出现异常(HTTP状态异常、java代码异常等等);如果系统出现这些异常会通过浏览器呈现给用户,这种异常显示是没有必要的,因此我们可以在服务器进行特定的处理,即当系统呈现异常之后,呈现给用户一个统一的、可读的异常提示页面

目录

一、HTTP异常状态统一处理

二、SpringMvc处理

三、SpringMvc处理统一异常


一、Http异常状态统一处理

        Http异常处理可以使用<error-page>进行异常处理,在web.xml文件中中进行配置,但是这个方法不是由Springmvc提供的,而是所有web工程(Servlet)提供的异常处理机制。例如下列代码:如果页面出现404的时候,就会跳转到一个专门处理404异常的提示页面

  <!--异常处理-->
  <error-page>
    <error-code>404</error-code>
    <location>/404.jsp</location>
  </error-page>

二、springMvc处理

        springMvc处理异常是基于Servlet-api的处理,在web.xml文件中中进行配置,处理方式与上面处理方式大致相同,可以处理异常(空指针异常,数据转换异常等)

  <!--springmvc异常处理-->
  <error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error.jsp</location>
  </error-page>

三、springmvc处理统一异常

        新建一个类,在类头上使用@controllerAdvice注解,在类中声明方法,在方法上使用注解@ExceptionHandle()声明这是一个处理什么异常的方法,在当前类下,可以声明多个方法,以此进行不同的异常

package com.xgsm.Util;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@ControllerAdvice
public class MyExceptionHandler  {
    @ExceptionHandler(NullPointerException.class)
    public String nullhandler(){//处理空指针异常
        return "error";
    }

    @ExceptionHandler(NumberFormatException.class)
    public String NumberHandle(){//处理NumberFormatException
        return "error";
    }
}


版权声明:本文为weixin_45295447原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。