在具有表示层、服务层和数据层的经典三层应用程序中,确保简洁且不重复的异常报告日志消息的最合适方法是什么。想象一下,您的 dao 层捕获任何类型的检查异常(我们将使用 Java 术语,但相同的概念适用于其他异常处理语言)并将其转换为带有适当消息的 daoException。是否应该在 dao 层同时记录适当的消息(例如“访问 db 时发生异常”+ e.getMessage())?然后服务层捕获所有dao异常,本身提供适当的服务层消息,将dao异常(包装它)转换为service异常,然后重新抛出。服务层是否也应该记录捕获的异常?简而言之:
- 应该只在dao层记录它吗?
- 应该只由服务层记录它吗?
- 两层都应该记录它吗?
- 或者应该考虑每种情况 根据用例/服务调用等具体情况?
出于这个问题的目的,我忽略了表示层。
最佳答案
服务层异常中的堆栈跟踪将包含底层的 dao 异常,因此我认为将其记录在服务层是有意义的。
关于java - 在分层应用程序中记录异常的最佳实践,以避免重复的错误日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14889225/