Exception MFC项目的异常日志记录?(遇到不恰当的争论)

Exception MFC项目的异常日志记录?(遇到不恰当的争论),exception,mfc,error-logging,Exception,Mfc,Error Logging,在C#中,他们有很好的工具,如SimpleLogger来记录所有异常信息 但我找不到任何类似的东西用于我的MFC应用程序。我使用各种try/catch机制,但有时仅在发布版中显示零星错误消息: 遇到不恰当的争论 可悲的是,它无法按需提高,但在最近几周出现了几次 有一个例子是,当我用首次登场软件录制视频教程时显示错误。以下是屏幕抓图: 由于此弹出消息无法帮助我找到问题,因此,在发生异常时,是否仍可以记录有关异常的更好信息 我偶然发现了一个有趣的地方,它提到了确保: #define ENSURE

在C#中,他们有很好的工具,如
SimpleLogger
来记录所有异常信息

但我找不到任何类似的东西用于我的MFC应用程序。我使用各种
try
/
catch
机制,但有时仅在发布版中显示零星错误消息:

遇到不恰当的争论

可悲的是,它无法按需提高,但在最近几周出现了几次

有一个例子是,当我用首次登场软件录制视频教程时显示错误。以下是屏幕抓图:

由于此弹出消息无法帮助我找到问题,因此,在发生异常时,是否仍可以记录有关异常的更好信息


我偶然发现了一个有趣的地方,它提到了
确保

#define ENSURE(cond) ENSURE_THROW(cond, ::AfxThrowInvalidArgException() )

当我加载所有STRINGTABLE资源和一些其他位时,我使用
确保
。但我不认为这是我的问题。

异常处理101:不要捕获异常。当遵循此规则时,任何异常都会导致进程失败。这是一个安全而明智的选择。最坏情况:用户丢失未保存的数据。这听起来很可怕,直到您评估了替代方案,如无法恢复地损坏用户数据,或提供远程代码执行攻击机会。额外的好处:您可以将调试器设置为。这大致正确。有些情况下,您可以安全地处理异常,有些情况下,您决不能让异常传播。@andrewruckle“无论如何,在异常发生时记录有关异常的更好信息”保存文件(在确定错误框之前),然后在VS或WANDBG中加载它进行调试。@安德鲁斯特洛克<代码> { TyrT/YOX-CHIG/<代码>可以在C++中工作,但是它需要在所有情况下解压缩堆栈,如页面上所解释的。@安德鲁斯塔克右,我的意思是只回答“如何”部分,不一定推荐它。在IDE代码> /EHA < /C>中是C/C++ +代码生成/启用C++异常的选项之一。是否/何时使用它是一个较长的问题,链接的SEH页面给出了一些提示。异常处理101:不要捕获异常。当遵循此规则时,任何异常都会导致进程失败。这是一个安全而明智的选择。最坏情况:用户丢失未保存的数据。这听起来很可怕,直到您评估了替代方案,如无法恢复地损坏用户数据,或提供远程代码执行攻击机会。额外的好处:您可以将调试器设置为。这大致正确。有些情况下,您可以安全地处理异常,有些情况下,您决不能让异常传播。@andrewruckle“无论如何,在异常发生时记录有关异常的更好信息”保存文件(在确定错误框之前),然后在VS或WANDBG中加载它进行调试。@安德鲁斯特洛克<代码> { TyrT/YOX-CHIG/<代码>可以在C++中工作,但是它需要在所有情况下解压缩堆栈,如页面上所解释的。@安德鲁斯塔克右,我的意思是只回答“如何”部分,不一定推荐它。在IDE代码> /EHA < /C>中是C/C++ +代码生成/启用C++异常的选项之一。是否/何时使用它是一个较长的故事,链接的SEH页面给出了一些提示。