Marshal.GetExceptionCode()已被弃用,并且该消息没有建议的解决方法。
目前,我在以下开源项目中使用它:
https://github.com/dbones-labs/auditable/blob/master/src/Auditable/AuditableContext.cs#L143
这个想法是,如果客户端代码/应用程序在using
块内引发异常,则不应该写日志。
然而,项目代码只有一个using
语句来确定它是否应该作出反应。
有什么替代方法?(不改变调用代码的API)
API的示例用法https://dbones-labs.github.io/auditable/quick-examples/aspnet-example.html#3-add-some-auditable-logs
SEHException
仍然会被抛出,你可以将try
放在内部。 - CharliefaceDispose()
中时,你不知道是否有 SEHException “在空中”。 - xanatosMarshal.GetExceptionPointers()!= IntPtr.Zero || Marshal.GetExceptionCode()!=0;
。第一种方法不会被废弃...你可以试试看是否足够。 - xanatos