gpt4 book ai didi

spring - 在哪里处理Spring DataAccessException

转载 作者:行者123 更新时间:2023-12-04 10:27:47 27 4
gpt4 key购买 nike

我使用Struts,Spring和Hibernate开发了一个应用程序。

我的DAO使用spring jdbc,它的所有方法都抛出DataAccessException(未选中)。

我应该在哪里处理这种异常(exception)情况?我知道这是一个未经检查的异常,但是我想我需要告诉用户数据库是否存在问题或连接是否存在问题。

我认为我应该从我的服务类方法中抛出DataAccessException,以使其被Controller捕获。
这是一个好习惯吗?

我查看了Spring软件包中的示例,但在域或服务区域中未找到任何异常处理。离开dao区域后,DataAccessException似乎被忽略了。

请为这个问题提出一个好的设计。

最佳答案

The DataAccessException seems to be ignored after leaving dao area.



那是一件好事!让它向下飞过整个堆栈。您可能在服务层上有事务-异常将透明地导致最外层的事务被回滚。伟大的!

现在它将找到通往 Controller 的方式。如果您在Struts Controller 中将其捕获,则可以例如返回不同的 View 。但是最有可能您不想在每个Struts操作中处理异常。因此,让异常飞得更远。在某个时候,Struts会捕获该异常并尝试对其进行处理。 Struts具有一些复杂的错误处理机制,您将找到许多有关它们的信息。通常,它将根据异常类型调用一些自定义操作或错误屏幕。

最后,即使Struts也无法处理该异常,它将被重新抛出到容器中,从而导致HTTP 503以及异常详细信息被返回。

如您所见,您可以在许多级别上控制异常,通常越低越好。

关于spring - 在哪里处理Spring DataAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10673048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com