Spring Boot @ExceptionHandler 教程展示了如何使用 Spring @ExceptionHandler 处理异常。
Spring 是流行的 Java 应用框架,而 Spring Boot 是 Spring 的演进,可以帮助轻松地创建独立的,生产级的基于 Spring 的应用。
@ExceptionHandler
是用于在特定处理程序类或处理程序方法中处理异常的注解。 在 Servlet 环境中,我们可以将@ExceptionHandler
注解与@ResponseStatus
结合起来以定义 HTTP 响应的响应状态。
Spring Boot @ExceptionHandler
示例
在以下应用中,我们演示@ExceptionHandler
的用法。 主页中的 HTML 链接调用控制器的方法,该方法将返回数据或引发异常。
这是 Spring 应用的项目结构。
pom.xml
这是 Maven pom.xml
文件。 spring-boot-starter-freemarker
是 Freemarker 模板引擎的依赖项; spring-boot-maven-plugin
将 Spring 应用打包到可执行的 JAR 或 WAR 归档文件中。
com/zetcode/controller/MyController.java
MyController's
getData()
方法调用服务方法,并将检索到的数据存储到列表中。 数据被发送到showData
视图。 如果是MyDataException
,则控制器将重定向到错误页面。
handleError()
用@ExceptionHandler
装饰。 MyDataException
的处理程序已激活。 在方法的主体中,我们重定向到showError.html
页面。
com/zetcode/exception/MyDataException.java
我们定义一个自定义MyDataException
。
com/zetcode/service/IDataService.java
IDataService
包含合同方法。
com/zetcode/service/MyDataService.java
MyDataService
实现IDataService's
findAll()
方法。 该方法返回数据或抛出MyDataException
。
findAll()
方法随机抛出MyDataException
。 然后在控制器中处理异常。
如果没有例外,我们将返回一个字符串列表。
resources/static/index.html
这是主页。 它包含一个链接,该链接调用我们的控制器方法以获取一些数据。
resources/static/showError.html
这是一个错误页面。 抛出MyDataException
时显示。
resources/templates/showData.ftl
showData.ftl
是一个 Freemarker 模板文件,它在 HTML 列表中显示所有检索到的数据。
com/zetcode/Application.java
Application
是引导 Spring Boot 应用的入口点。
在本教程中,我们展示了如何使用@ExceptionHandler
在 Spring 应用中处理异常。