我应该避免在servlet中捕获数据库异常吗?

时间:2018-01-03 09:20:53

标签: java exception servlets

我阅读了throw early catch late原则,现在我想知道是否应该在我的servlet中捕获数据库异常。

在我看来,servlet是我应用程序中的最后一点,我可以在其中决定程序流程。我可以将http错误代码发送回客户端,而在dao层执行此操作对我来说似乎很奇怪。

如果我错了,我会很高兴听到如何在dao层中正确捕获数据库异常。

1 个答案:

答案 0 :(得分:2)

Throw early catch late不是解决引发异常的预期失败的解决方案。

编写网络代码时,网络通常会丢弃数据包,或者您尝试使用的服务无法访问。导致整个servlet崩溃将是一个非常糟糕的做法,因为它需要网络可操作以使servlet可操作。

这似乎不是一个良好的用户体验,更合理的方法是提出您正在尝试连接到数据库,失败,重新尝试和失败等等。至少在这种情况下输出,你得到一个更好的抱怨,数据库不可用,而不是你的servlet崩溃。