每当用户报告错误时,例如
System.Runtime.InteropServices.SEHException- 外部组件引发的异常?
作为一名程序员,我可以做些什么来确定原因吗?
场景:一名用户(使用我公司编写的程序)报告了此错误。
这可能是也可能不是一次性错误。他们提到,上个月,电脑已经两次“停止工作”。我从经验中学到,不要太字面地理解这个描述,因为这通常意味着与计算机相关的某人没有按预期工作。他们无法向我提供更多详细信息,我也找不到任何记录的错误。因此,可能是也可能不是这个错误。
从堆栈跟踪来看,实际的错误是在构造一个不直接调用任何互操作代码的类时出现的,但可能由于该对象可能是数据绑定到 DevExpress 网格的列表的一部分而变得复杂。
该错误被未处理的异常例程“捕获”,该例程通常会关闭程序,但可以选择忽略并继续。如果他们选择忽略该错误,则程序会继续工作,但下次运行该例程时会再次出现错误。然而,关闭并重新启动我们的应用程序后,它没有再次发生。
所讨论的计算机似乎没有受到压力。它运行的是 Vista Business,有 2GB 内存,根据任务管理器的数据,我们的应用程序只使用了大约一半的内存,只有大约 200Mb。
还有另一条信息可能相关,也可能不相关。同一程序的另一部分使用第三方组件,该组件实际上是本机 dll 的 dotnet 包装器,并且该组件确实存在一个已知问题,您偶尔会遇到
尝试读取或写入受保护的内存。这通常表明其他内存已损坏
组件制造商表示,这个问题已在我们内部使用的最新版本组件中得到修复,但尚未提供给客户。
鉴于错误的后果很低(不会丢失任何工作,重新启动程序并返回到原来位置最多只需要一分钟),并且考虑到客户很快就会获得新版本(更新后的第三个版本) party 组件),我显然可以祈祷并希望错误不会再次发生。
但我还能做些什么吗?
是的。此错误是一个结构化异常,未映射到 .NET 错误。可能是您的 DataGrid 映射抛出了未捕获的本机异常。
您可以通过查看来判断发生了什么异常外部异常.错误代码 http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.externalexception.errorcode.aspx财产。我会检查您的堆栈跟踪,如果它与 DevExpress 网格相关,请向他们报告问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)