Identisch mit "How do exceptions work (behind the scenes) in C++", aber für C#.Wie funktionieren Ausnahmen (hinter den Kulissen) in C#
Ich weiß, dass die folgenden Schritte ausgeführt werden müssen, wenn eine Ausnahme ausgelöst wird.
- Suchen Sie den nächstgelegenen Handler für den Ausnahmetyp;
- Abwickeln des Stapels bis zur Handler-Ebene;
- Rufen Sie den Handler an;
- Finden und rufen Sie alle
finally
Blöcke.
Wie behandelt .NET diese Operationen? Wie funktioniert das Mapping für die "aktuellen" Handler? Wie viel Code wird in einem try/catch-Block ausgegeben? Und in einem Wurfblock?
Sie ein paar Schritte verpasst haben, zumindest: zu sehen, ob es irgendwelche Ausnahmefilter installiert sind (sie vor dem Fang einlassen Blöcke) und führt alle abschließenden Blöcke aus, während sich der Stapel abwickelt. –
Tatsächlich habe ich die letzten Blöcke vergessen. Lass mich das korrigieren. – jpbochi