Sto eseguendo un programma di form di Windows che fa tutto il suo lavoro su un altro thread. Dopo qualche tempo, l'interfaccia utente si blocca e smette di rispondere. Il thread in background funziona ancora bene (lo vedo dal lavoro svolto).Una prima eccezione casuale di tipo 'System.IndexOutOfRangeException' in exe nella finestra di output
ho avuto questa eccezione:
Una prima eccezione di possibilità di tipo 'System.IndexOutOfRangeException' in exe
Quando ho tracciato la linea di eccezione e corse di nuovo, ho ottenuto questo:
La discussione
<No Name>
(0x19b4) è terminata con il codice 0 (0x0).
La riga di codice funziona correttamente ma fornisce System.IndexOutofRangeException
.
MatchCollection tempcollection = Regex.Matches(document,
"(?<data>More information from(.|\\r|\\n)*?</div>)");
if (tempcollection.Count == 0)
{
return Result;
}
string ThisDiv = tempcollection[0].Groups["data"].Value;
// The above line shows exception in Output Window,
// otherwise it works fine and moves to next line.
UPDATE: ho visto che la produzione fornisce informazioni su ogni eccezione se è catturato o no, ho pensato che è causa di congelamento interfaccia utente ma che non è.
- Gentilmente aiutarmi a sbarazzarsi di questa eccezione.
- È un'eccezione Unchecked; Ho imparato nei miei studi che .Net non ha eccezioni non controllate. Per favore chiariscilo per mia comprensione.
Perché non inserisci la linea tempcollection [0]. Gruppi ["dati"]. Valore all'interno dell'istruzione if "if (tempcollection.Count! = 0)"? Se il conteggio è 0, "string ThisDiv = tempcollection [0] .Groups [" data "]. Value;" genererà un'eccezione "Fuori intervallo". –