首页 / 软件开发 / C++ / 介绍一个专门处理C++异常的类
介绍一个专门处理C++异常的类2010-01-23PJ Naughter简介:CExceptionLogger,是一个可以免费使用的C++类,用它可以截获未处理异常,如:非法存取、栈溢出、被零除等,并可以将异常详细信息记录到日志文件。这个类源自于MSDN Magazine 2002年3月的一篇专栏文章“Under the Hood: Improved Error Reporting with DBGHELP 5.1”,该文章的作者是 Matt Pietrek。特性:在默认情况下,CExceptionLogger产生一个日志文件,名字为:nameofexe.exception,这里的nameofexe是exe文件的名字。如果以ASCII模式生成CExceptionLogger,则日志文件为一ASCII文件;如果以UNICODE模式生成CExceptionLogger,那么日志文件为一UNICODE文件。日志文件记录的信息包括:记录异常发生的日期和时间。异常代码。如果发生非法存取,则记录该异常的详细信息。记录的异常详细信息包括:线性地址、段、偏移量和模块路径。进程的全路径名。当前Win32工作目录。进程的命令行。进程ID。发生异常的线程ID。列举进程中所有的线程(假设ToolHelp32是可获得的),内容包括:线程ID优先级和Delta优先级参考创建时间Kernel 和 User Time列举进程中的模块(同样假设ToolHelp32是可获得的),内容包括:名字和全路径全程及每个进程的引用计数