SpringBoot Learning - Configuración de manejo de excepciones globales (regreso a JSON)
necesidad
ilustrar
@ControllerAdvice
Esta anotación es una nueva anotación agregada después de la primavera 2.3. Se utiliza principalmente para brindar asistencia a algunas mejoras bajas en las necesidades comunes del controlador, y se utiliza en el método de anotación @RequestMapping.
@ExceptionHandler
Esta anotación es una anotación utilizada con @ExceptionHandler. Es un controlador de errores personalizado. Puede ensamblar la cadena JSON usted mismo y volver a la página.
Código
Cree una clase de manejo de excepciones globales de la siguiente manera:
Si diferentes excepciones tienen diferentes operaciones que implementar, solo necesita cambiar el valor del valor de @ExceptionHandler para que sea diferente. Se pueden manejar múltiples excepciones diferentes al mismo tiempo, pero el estado de inclusión no puede ocurrir.
import javax.servlet.http.httpservletRequest; import org.springframework.web.bind.annotation.controllerAdvice; import org.springframework.web.bind.annotation.exceptionHandler; import ogspringframework.web.bind.annotation.ResponseseBody; GlobalExceptionHandler { / ** * Todas las excepciones informaron errores * @param solicitud * @param excepción * @return * @throws excepción * / @ExceptionHandler (valor = excepción System.out.println ("Informé un error:"+excepción.getLocalizedMessage ()); System.out.println ("Informé un error:"+excepción.getCause ()); System.out.println ("Informé un error:"+excepción.getSupressed ()); System.out.println ("Informé un error:"+excepción.getMessage ()); System.out.println ("Informé un error:"+Exception.getStackTrace ()); Devuelve "Excepción del servidor, comuníquese con el administrador!"; }}Simule una clase de lanzamiento de excepción. El siguiente ejemplo es lanzar una excepción de puntero nulo y el denominador no es una excepción
importar org.springframework.steretype.controller; import org.springframework.web.bind.annotation.requestMapping; import org.springframework.web.bind.annotation.ResponseBody;@controlador@requestmapping ("/excepcionTest")@ResponseBodyPublicCal Mensaje msg = nulo; msg.ToString (); createException (); regresar "Soy normal"; } private void createException () {int i = 5/0; }}Inicie SpringBoot, resultados de ejecución
Debido a que la cadena devuelta, también puede usar la clase de herramientas JSON para encapsularla y devolver una cadena JSON
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.