一、简介
Spring Boot是一款非常流行的Java框架,它极大地简化了Java应用程序的开发。Spring Boot提供了许多有用的功能,其中包括异常处理和错误页面。
在Web开发中,异常处理和错误页面是非常重要的。当应用程序发生异常或出现错误时,我们需要将异常或错误信息返回给客户端或用户。Spring Boot提供了强大的异常处理和错误页面功能,帮助我们更好地处理异常和错误情况。
二、异常处理
异常处理方式
Spring Boot提供了多种处理异常的方式,其中最常见的方式是使用@ControllerAdvice注解和@ExceptionHandler注解。
@ControllerAdvice注解用于定义全局异常处理器,它可以拦截所有Controller中抛出的异常。@ExceptionHandler注解则用于指定要处理的异常类型和处理方法。
异常处理示例
下面是一个使用@ControllerAdvice和@ExceptionHandler注解实现异常处理的示例:
代码语言:javascript复制@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseBody
public ResponseEntity<String> handleException(Exception e) {
return new ResponseEntity<>("An error occurred: " e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
在上面的示例中,我们定义了一个全局异常处理器GlobalExceptionHandler,并使用@ExceptionHandler注解指定了要处理的异常类型为Exception。handleException方法用于处理Exception类型的异常,它返回一个HTTP响应实体。
三、错误页面
静态错误页面
在Spring Boot中,我们可以通过自定义静态错误页面来实现错误页面的展示。我们只需要在项目的静态资源目录下创建一个error.html或error.ftl等错误页面文件,就可以在应用程序发生异常或出现错误时显示该页面。
动态错误页面
如果需要动态生成错误页面,我们可以使用Thymeleaf等模板引擎来实现。下面是一个使用Thymeleaf模板引擎实现动态错误页面的示例:
在application.properties文件中添加以下配置:
代码语言:javascript复制spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
然后,在src/main/resources/templates目录下创建error.html模板文件:
代码语言:javascript复制<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Error</title>
</head>
<body>
<h1>Error</h1>
<p th:text="${error}"></p>
</body>
</html>
最后,在GlobalExceptionHandler中添加以下代码:
代码语言:javascript复制@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ModelAndView handleException(Exception e) {
ModelAndView modelAndView = new ModelAndView("error");
modelAndView.addObject("error", "An error occurred: " e.getMessage());
return modelAndView;
}
}
在上面的示例中,我们使用Thymeleaf模板引擎来生成错误页面。在GlobalExceptionHandler的handleException方法中,我们返回一个包含错误信息的ModelAndView对象。