Ich bin ein Windows-Formular-Programm, das seine ganze Arbeit an einem anderen Thread. Nach einiger Zeit reagiert die Benutzeroberfläche nicht mehr und reagiert nicht mehr. Der Hintergrund Thread funktioniert immer noch gut (ich kann das von der Arbeit sehen).Eine erste Chance Ausnahme vom Typ 'System.IndexOutOfRangeException' in der exe im Ausgabefenster
ich diese Ausnahme bekam:
Eine erste Chance Ausnahme des Typs ‚System.IndexOutOfRangeException‘ in exe
Als ich die Linie der Ausnahme verfolgt und lief wieder, ich habe dies:
Der Thread
<No Name>
(0x19b4) wurde mit Code 0 (0x0) beendet.
Die Zeile Code läuft gut, aber es gibt eine 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: Ich habe die Ausgabe von Informationen gibt über jede Ausnahme zu sehen, ob es gefangen wird oder nicht, dachte ich, dass ist Ursache für UI eiskalt, aber das ist nicht.
- Bitte helfen Sie mir, diese Ausnahme loszuwerden.
- Ist es eine ungeprüfte Ausnahme; Ich habe in meinen Studien gelernt, dass .Net keine ungeprüften Ausnahmen hat. Bitte klären Sie dies für mein Verständnis.
Warum setzen Sie nicht die Zeile tempcollection [0] .Groups ["data"]. Wert innerhalb der if-Anweisung "if (tempcollection.Count! = 0)"? Wenn der Zählerstand 0 ist, "string ThisDiv = tempcollection [0] .Groups [" data "]. Value;" wird die Ausnahme "Out of Range" auslösen. –