El proyecto SSM agrega la función de manejo de excepciones

El proyecto SSM agrega la función de manejo de excepciones

Tabla de contenido

1. Manejo de excepciones a través del código de estado devuelto por la solicitud

1.1. Primero debe configurarse en web.xml

1.2. Agregue el archivo jsp en la ubicación especificada

1.3. Verificación

2. El mecanismo general de captura de excepciones

2.1. Implementar HandlerExceptionResolver de SpringMVC

2.2. Verificación


1. Manejo de excepciones a través del código de estado devuelto por la solicitud

Consulte el código de estado específico.

https://blog.csdn.net/fmyzc/article/details/78048074

(Nota: Lamento citar directamente sin mi consentimiento).

Aquí solo traté la información de la excepción 404, que se puede agregar de acuerdo con la situación real del proyecto.

1.1. Primero debe configurarse en web.xml

<!--异常页面,当没有发现的时候,会根基这个404代码返回相对应的jsp页面 -->
<error-page>
  <error-code>404</error-code>
  <location>/WEB-INF/jsp/error/404.jsp</location>
</error-page>

 

 

 Nota: La información del código de estado devuelta por todos los navegadores se puede configurar aquí, y se puede saltar información de código de estado diferente a diferentes archivos jsp.

1.2. Agregue el archivo jsp en la ubicación especificada

 

1.3. Verificación

 Inicie el servicio, ingrese una URL que no esté configurada en el programa y regrese a la página correspondiente.

 

2. El mecanismo general de captura de excepciones

2.1. Implementar HandlerExceptionResolver de SpringMVC

Antes de introducir el mecanismo general de captura de excepciones, debemos implementar la interfaz HandlerExceptionResolver de SpringMVC.

package edu.wan.handler;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Component
public class MyHandlerExceptionResolver  implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
        String errorMessage = null;
        //首先可以对异常进行判断
        if (e instanceof NullPointerException){
            errorMessage = "咋回事,大兄弟,你咋还空指针了呢";
        }
        //返回错误页面
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("errorMessage",errorMessage);
        modelAndView.setViewName("error");
        return modelAndView;
    }
}

 

2.2. Verificación

Modifiqué el código de mi capa de Controlador para verificación.

public @ResponseBody User findUserById(){
    int id = 1;
    userService = null;
    return userService.findById(id);
}

Después de iniciar el servicio y llamar al controlador especificado, saltará a la capa de manejo de excepciones. De acuerdo con diferente información de excepción, ensamblamos diferentes paquetes de datos en el front-end y dejamos que el front-end procese los datos.

 

 

Supongo que te gusta

Origin blog.csdn.net/baidu_31572291/article/details/114978531
Recomendado
Clasificación