Condividi tramite


Affidabilità delle informazioni sugli errori estesi

Le informazioni sugli errori estese non sono affidabili. Le informazioni sugli errori estesi non possono essere usate per la logica di compilazione del codice. È opportuno verificare la presenza di informazioni sugli errori estese e, se presente, per eseguire il dump, salvare o registrare tali informazioni. Ma non si basano sulle informazioni o sul relativo contenuto.

I motivi seguenti spiegano perché le informazioni sugli errori estese non sono affidabili:

  • La sequenza e il contenuto dei record di errore estesi dipendono dall'architettura interna del sistema, che è soggetta a modifiche. Un'operazione può passare attraverso NPFS nei sistemi correnti, ma domani potrebbe passare attraverso TCP. Questi diversi componenti generano codici di errore molto diversi e i controlli del codice sono quindi intrinsecamente inaffidabili e non consigliati.
  • La propagazione delle informazioni sugli errori estesi può essere disabilitata, come illustrato in precedenza. Se il codice di rilevamento è incluso, l'applicazione smetterà probabilmente di funzionare in determinati ambienti.
  • La propagazione delle informazioni sugli errori estese viene eseguita in modo ottimale. La propagazione o la generazione di informazioni sugli errori estesi possono non riuscire se non è presente memoria sufficiente nel computer per elaborare o propagare la catena. In tali circostanze, la catena verrà eliminata. Alcuni protocolli hanno lunghezze limitate per i pacchetti di errore poiché in genere non includono molte informazioni. Se la lunghezza della catena supera la lunghezza consentita del pacchetto, il tempo di esecuzione RPC inizia a eliminare le informazioni dalla catena in un tentativo di adattare la catena al pacchetto. L'ora di esecuzione elimina prima i record, a partire dal penultimo record, andando indietro, fino a quando rimangono solo i primi e gli ultimi record. Se la catena non è ancora adatta a un pacchetto, il tempo di esecuzione elimina i parametri stringa e i nomi di computer. Se viene eliminato un parametro stringa, il tipo del parametro è impostato su nessuno. Se un record viene eliminato, il flag EEInfoNextRecordsMissing viene impostato nel record successivo e EEInfoPreviousRecordsMissing viene impostato nel record precedente.