擴充錯誤資訊不可靠。 擴充錯誤信息無法用於建置程式代碼邏輯。 適當地檢查是否有延伸的錯誤資訊存在,如果有的話,請傾印、儲存或記錄該資訊。 但不要依賴資訊或其內容。
下列原因說明擴充錯誤信息為何不可靠:
- 擴充錯誤記錄的順序和內容取決於系統的內部架構,而系統可能會變更。 某些作業可能會在目前的系統上通過 NPFS,但明天可能會通過 TCP。 這些不同的元件會產生非常不同的錯誤碼,因此程式代碼檢查本質上是不可靠的,不建議這麼做。
- 可以停用擴充錯誤信息的傳播,如先前所述。 如果包含偵測程式代碼,應用程式可能會在特定環境中停止運作。
- 擴充錯誤信息的傳播會以最佳方式執行。 如果計算機上沒有足夠的記憶體來處理或傳播鏈結,傳播或產生擴充錯誤資訊可能會失敗。 在這種情況下,鏈結將會卸除。 某些通訊協議對於錯誤封包的長度有限,因為它們通常不包含太多資訊。 如果鏈結的長度超過封包允許的長度,RPC 運行時間就會開始從鏈結卸除資訊,以嘗試將鏈結放入封包中。 運行時間會先卸除記錄,從倒數第二筆記錄開始,往後移動,直到只保留第一筆和最後一筆記錄為止。 如果鏈結仍然不符合封包,運行時間會卸除字串參數和計算機名稱。 如果卸除字串參數,參數的類型會設定為 none。 如果卸除記錄,則會在下一筆記錄中設定 EEInfoNextRecordsMissing 旗標,並在上一筆記錄中設定 EEInfoPreviousRecordsMissing。