我知道围绕异常处理进行了很多讨论,但是我需要一些针对我的情况的建议。
我目前正在开发一个Spring MVC
带有Controller->Services->DAO
图层的应用程序。服务类主要捕获两种异常HibernateException
和IOException
.
HibernateException
因为如果事务没有成功,服务需要执行回滚,IOException
因为它是一个未经检查的异常,需要被捕获或抛出,我更喜欢第一个选项。
现在,在堆栈中进一步处理这些问题的更好方法是什么:
- 我是否应该将这些异常重新抛出到控制器并在
ExceptionHandler
控制器中发送 HTTP 错误代码 500 - 还是在 catch 块中创建普通
JSON response
对象、设置status=failure
和适当的错误消息并将其返回给控制器?