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