扩展错误信息的可靠性
扩展错误信息不可靠。 扩展错误信息不能用于生成代码逻辑。 适合检查是否存在扩展错误信息,如果存在,则转储、保存或记录该信息。 但不要依赖信息或其内容。
以下原因解释了扩展错误信息不可靠的原因:
- 扩展错误记录的顺序和内容取决于系统的内部体系结构,这可能会发生更改。 某个操作可能在当前系统上通过 NPFS,但明天可能会通过 TCP。 这些不同的组件生成非常不同的错误代码,因此代码检查本质上是不可靠的,不建议这样做。
- 如前所述,可以禁用扩展错误信息的传播。 如果包含检测代码,应用程序可能会在某些环境中停止工作。
- 扩展错误信息的传播是尽最大努力执行的。 如果计算机上没有足够的内存来处理或传播链,则扩展错误信息的传播或生成可能会失败。 在这种情况下,链将被删除。 某些协议对于故障数据包的长度有限,因为它们通常不包含很多信息。 如果链的长度超过数据包的允许长度,则 RPC 运行时将开始从链中删除信息,以尝试将链放入数据包中。 运行时首先删除从倒数第二个记录开始的记录,然后向后删除,直到只保留第一条和最后一条记录。 如果链仍然不适合数据包,则运行时会删除字符串参数和计算机名称。 如果删除字符串参数,则参数的类型将设置为 none。 如果删除记录,则会在下一条记录中设置 EEInfoNextRecordsMissing 标志,并在上一条记录中设置 EEInfoPreviousRecordsMissing。