ExceptionInfo 结构实例是使用 ManagedExceptionQueue pop 方法从队列的顶部提取的。该结构包含异常的引发日期和时间。该日期和时间可用来创建一个托管的 NameValueCollection 对象(该对象带有一个包含日期值的名称值项)。该值的名称为 ExceptionRaisedDateTime;只有在显示事件日志中的异常时,才会使用它。
返回页首
ExceptionPublisher 类
需要将从挂钩的 SetErrorInfo 中提取的 .NET 异常中的信息记录在某处 — 无论是文件、事件日志还是电子邮件。特别地,需要将前面提到的所有信息(例如,异常的属性、堆栈跟踪和任何内层异常)包含在日志中。
Microsoft 的 Patterns and Practices Group 已经专门针对此目的创建了 EMAB。如果您尚未完成有关工作,那么我强烈建议您查看其他所有可用的应用程序块,以便了解它们是否适合于在您的当前项目中使用。异常块是一种通过 ExceptionManager 类发布异常信息的简单而灵活的机制。它还使您可以创建自己的发布程序,以便向其他数据源(例如,XML 文件或数据库)发布数据。
需要调用该类中的 Publish 方法来发布异常。该方法被定义为静态方法,这将便于 .NET 客户端使用;但是,这对于 COM 客户端不够友好,因为它们无法调用静态方法。一种简单的解决方案是,使用门面模式将对该类的访问包装到另一个类中。为了使 .NET 组件更容易被 COM 客户端使用,开发人员应当遵守各种准则。其中一个准则是确保该类具有默认构造函数。创建了两个新的程序集,它们包含 ExceptionPublisher 类和 IExceptionPublisher 接口。以下代码显示了该类中的包装方法:
public void Publish(Exception exception, NameValueCollection nameValueItems)
{
ExceptionManager.Publish(exception, nameValueItems);
}
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/