【发布时间】:2016-03-10 08:35:29
【问题描述】:
我正在开发一个基于 Spring MVC 的新应用程序。 我有多个流程,控制器将向业务经理发出请求,而进一步的业务经理将与 DAO 层对话以检索数据。
在某些情况下,我可能无法从 DAO 取回数据。 我想了解处理这种情况的最佳方法。
1) 如果没有为查询检索到数据,则将自定义异常(如“未找到内容”)从 DAO 层抛出到业务层,然后再到控制器,让控制器决定要做什么。
2) 将空白/null Pojo 对象返回给业务经理,让经理将异常抛给 Controller。
3) 控制器从 Manager 接收 null/blank 并决定如何处理。
我发现第一种方法更好,因为当抛出异常时,我有完整的堆栈跟踪来了解问题的确切发生位置,但不利的一面是,我最终会在签名中使用 Exception 来弄乱我的代码。
数字 3 将使代码保持干净,但我无法确定数据检索失败的确切位置,因为可能会从业务层多次调用 DAO。
【问题讨论】:
标签: spring hibernate spring-mvc exception-handling