在DAO层还是Delegate层哪里处理异常?
Where to handle exception whether in DAO layer or Delegate layer?
为了更好地设计应用程序:
- 在DAO层还是Delegate层哪里处理异常?
- 1 中给出的 2 种方法中哪一种更好?
像往常一样回答 "design" 个问题:视情况而定。
一般来说,我会说在本地处理尽可能多的异常,在本例中是在 DAO 中,但您可能希望重新抛出一些异常或直接引发新的异常。
例如如果您的 DAO 导致 SQLException,您甚至不想让您的上层知道使用了 SQL,因此建议尽早捕获此异常(这样您就不必导入SQL您的委托层包中的异常)。但是,在 MyCustomDAOException 中重新抛出 SQLException 将允许保留错误信息。
tldr;在 DAO 中,如果需要,抛出包含原始异常的新异常。
为了更好地设计应用程序:
- 在DAO层还是Delegate层哪里处理异常?
- 1 中给出的 2 种方法中哪一种更好?
像往常一样回答 "design" 个问题:视情况而定。
一般来说,我会说在本地处理尽可能多的异常,在本例中是在 DAO 中,但您可能希望重新抛出一些异常或直接引发新的异常。
例如如果您的 DAO 导致 SQLException,您甚至不想让您的上层知道使用了 SQL,因此建议尽早捕获此异常(这样您就不必导入SQL您的委托层包中的异常)。但是,在 MyCustomDAOException 中重新抛出 SQLException 将允许保留错误信息。
tldr;在 DAO 中,如果需要,抛出包含原始异常的新异常。