我们的 C# 应用程序中出现神秘的 SEHExceptions,它可能来自一些非托管代码 (FFMPEG)。它没有被 try-catch 块捕获 - 所以我们不确定是什么导致了它,但它可能是由于空引用。
我在 MSDN ( SEHException MSDN Page ) 上找到了这个,上面写着:
.NET Framework 经常遇到自动映射到托管等效项的非托管 SEH 异常。有两种常见的非托管 SEH 异常: STATUS_NO_MEMORY 异常自动映射到 OutOfMemoryException 类。STATUS_ACCESS_VIOLATION 异常自动映射如下:
如果应用legacyNullReferencePolicy,则所有访问冲突都映射到 NullReferenceException 类。
现在,这听起来很有趣——如果我们可以设置这个legacyNullReferencePolicy,也许这些神秘的 NullReferenceExceptions 可以被捕获,我们可以找出它们来自哪里。
但我在网上找不到任何关于legacyNullReferencePolicy的信息。它是什么?我在哪里设置它?