sto parlando con un oggetto COM (oggetto Recordset Microsoft ADO). In un certo caso il recordset restituirà un fallito (cioè negativo) HRESULT
, con il messaggio:COM: come gestire un'eccezione specifica?
voce non può essere trovato nella collezione corrispondente al nome richiesto o ordinale
so cosa significa questo messaggio di errore, sapere perché è successo, e io come risolverlo. Ma io conosco queste cose perché ho letto il messaggio, che fortunatamente era in una lingua che ho capito.
Ora mi piacerebbe gestire questa eccezione in particolare. L'oggetto COM ha gettato un HRESULT di
0x800A0CC1
In un mondo ideale Microsoft avrebbe documentato what errors can be returned quando provo ad accedere:
records.Fields.Items(index)
con un indice non valido. Ma loro non lo fanno; che la maggior parte si dice è che un errore si può verificare , cioè .:
Se Articolo non riesce a trovare un oggetto nella collezione corrispondente all'argomento Index , si verifica un errore.
Dato che il codice di errore restituito non è documentata, è corretto per gestire un codice di ritorno specifico di `0x800A0CC1' quando sto cercando di intrappolare l'eccezione:
voce non può essere trovato nella collezione corrispondente al nome richiesto o ordinale
?
Poiché Microsoft non ha documentato il codice di errore, sono tecnicamente modificarlo in futuro.
Due risposte identiche indicano che la documentazione relativa agli errori lanciati dalla proprietà non è documentata con la proprietà. Ma la tua viene accettata perché hai citato i documenti e collegato ad essa. Inoltre, con 1k rep tieni le risposte accettate più di Hans (scusa Hans, ma è vero) –