2016-10-31 40 views
1

我的系统有2个主要层,即服务层和数据库访问层。数据库层异常处理的设计模式

我公开一个接口到服务层进行数据库操作。现在

,在此界面中有一些可以通过例如DAO层的每一个操作抛出除了少数例外,超时异常etc-

是否有表达不是明确指定每隔本规范的方式方法与throws ExceptionName

+0

很酷。但是,我想我会尝试一下检查出来的异常例外。 –

+0

感谢您的快速接受! – GhostCat

回答

1

这里有多种选择;但我认为我的“意见”以某种方式与你在很多地方现在找到了“最佳实践”相匹配:

  • 如果你想使用检查异常,然后创建一些抽象的基异常,并把那一个在你的列表中。因为你真的不希望你的抛出列表中有两个以上的例外。只是因为如此广泛的投掷名单随着时间而增长,并且他们很快就会污染你所有的图层。
  • 你也可以不使用检查的异常!相反:抛出适当的运行时异常,并通过接口上的javadoc记录该事实。许多人认为,选中和未选中的例外之间的“战争”是超过,而未选中赢了。因为无论如何,你需要一些“通用的一切捕捉”东西。那么,无论如何要写这些代码,为什么这些维护密集型的排列清单喧嚣?
1

有没有一种方法来表达此规范,而不是显式指定每个抛出方法ExceptionName?

没有。抱歉。

您可以通过(重新)实现您的自定义异常作为层次结构来潜在地减少样板量。但是除非你想让你的例外不被检查,那么一些样板是必要的。


1 - 这也有缺点。如果您取消选中,您会失去编译时检查异常的问题。