Enterprise Library 5.0 异常处理包括 Wrap Handler。这将一个异常包装在另一个异常中并抛出包装异常。
我想向我的包装器异常添加其他信息,例如有关在发生错误时生效的参数和设置的一些信息。这对于故障排除很方便(因为这个包装异常将被更高级别的处理程序捕获和记录)。
我正在使用以下代码:
ExceptionManager em = EnterpriseLibraryContainer.Current.GetInstance<ExceptionManager>();
em.Process(() => { DoSomething(); }, "WrapPolicy");
这样做的结果是一个异常,它被包装在我的自定义异常中并被抛出。这是干净和简单的,但由于我的代码从未看到包装异常实例,我无法用其他信息来扩充它。
除了将动作包装在传统的 Try...Catch 中并手动执行 HandleException 方法之外,还有没有办法将额外的信息注入到包装异常实例中?