Mic*_*evy 5 .net c# windows exception
在我们的代码库中,错误条件可能会导致抛出异常。在代码的其他位置,异常处理程序捕获异常并将错误记录到 Windows 事件日志中。
当检测到错误并抛出异常时,我们拥有有关错误条件的最多信息,我想使用将记录在 Windows 事件日志中的唯一事件 ID 来识别错误。
将此事件 ID 包含在引发的异常中的最佳方法是什么?
我考虑过使用Exception.HResult,但这似乎旨在用于 COM/win32 互操作。人们使用HResult来达到这个目的吗?似乎可以将严重性映射到日志级别,将设施代码映射到事件源,并将 Hresult 代码映射到事件 ID。这是一种常见的方法吗?
我考虑使用Exception.Data字典并向引发的异常添加一个名为“EventID”的值,以便我的处理程序可以使用该值来记录 EventID。
大家有什么好的意见或者建议吗?
你提到的这些方法当然是有效的。我在类似情况下使用的另一种方法是让我的异常类型使用提供事件 ID 的方法或属性来实现特定接口。
在所有这些方法中,关键是永远不要吃掉异常,而是在适当的情况下用更多数据将它们包装在其他异常中,然后在顶层遍历链,InnerException直到找到您正在寻找的异常。使用特定接口的优点是可以轻松识别以您想要的方式提供信息的异常类,而任何异常都可以HResult在Exception.Data.
| 归档时间: |
|
| 查看次数: |
1671 次 |
| 最近记录: |