0

我遇到了一个奇怪的问题,我的 .net c# 4.0 插件(一个相对简单的插件,具有大量互操作和自定义任务窗格)导致 word 崩溃:

如果加载项运行时间较长(> 5 分钟),有时会突然出现 Windows 对话框“word 不再工作”。几秒钟后,插件错误对话框打开,我瞥见它显示了 SEHException。但随着 Windows 立即重新启动 Word,我无法仔细查看异常。调试器没有帮助,因为它无法中断。

知道导致 SEHException 的原因以及我可以调查的内容吗?Word/VSTO 具体建议是理想的,但也欢迎有关避免和调查 SEHExceptions 的一般建议。

谢谢查本

4

2 回答 2

0

获得此异常的一种方法是非托管代码执行操作系统RaiseException()或导致故障。如果该异常在堆栈中向上传播到托管代码,我们将尝试将其映射到托管异常。例如,STATUS_NO_MEMORY映射到OutOfMemoryExceptionSTATUS_ACCESS_VIOLATION映射到NullReferenceException

对于所有没有预定义映射的异常代码,我们将它们包装到SEHException.

来自什么是 SEHException? cbrumme:msdn 博客


尝试在每个可能导致或异常try{} catch{}的代码上添加块。然后用于获取异常详细信息。STATUS_NO_MEMORYSTATUS_ACCESS_VIOLATIONExternalException.ErrorCode

于 2012-08-08T06:17:35.713 回答
0

我注意到使用Release Configuration编译时不会发生异常。

如果有人遇到同样的情况,请尝试发布配置。

于 2012-08-10T12:10:49.980 回答