在具有表示层、服务层和 dao 层的经典 3 层应用程序中,确保简洁且不重复的异常报告日志消息的最合适方法是什么。想象一下,您的 dao 层捕获任何类型的已检查异常(我们将使用 Java 术语,但相同的概念适用于其他异常处理语言)并将其转换为带有适当消息的 daoexception。是否应该在 dao 层同时记录相应的消息(例如“访问 db 时发生异常”+ e.getMessage())?然后服务层捕获所有的daoexception,自己提供适当的服务层消息,将daoexception(包装)翻译成serviceexception,然后重新抛出。服务层是否也应该记录捕获的异常?简而言之:
- 应该只记录 dao 层吗?
- 应该只记录服务层吗?
- 两层都应该记录吗?
- 还是应该根据用例/服务调用等逐案考虑每种情况?
出于这个问题的目的,我忽略了表示层。