为了更好地设计应用程序:
答案 0 :(得分:2)
与“设计”问题一样:这取决于。
一般来说,我会说在本地处理尽可能多的例外情况,在这种情况下是在DAO中,但你可能想重新抛出一些例外或直接引发新例外。
E.g。如果您的DAO导致SQLException,您不希望让您的上层甚至知道使用了SQL,因此建议尽早捕获此异常(因此您不必在Delegate Layer的包中导入SQLException)。但是,在MyCustomDAOException中重新抛出SQLException将允许保留错误信息。
tldr;在DAO中,如果需要,抛出包含原始异常的新异常。