Was genau ist eine Ausnahme der ersten Chance? Wie und wo stammt es aus einem .NET-Programm? Und warum heißt es so eigenartig (von welcher 'Chance' sprechen wir)?
Was genau ist eine Ausnahme der ersten Chance? Wie und wo stammt es aus einem .NET-Programm? Und warum heißt es so eigenartig (von welcher 'Chance' sprechen wir)?
Antworten:
Es ist ein Debugging-Konzept. Grundsätzlich Ausnahmen sind mit dem Debugger geworfen erst und dann auf das eigentliche Programm , wo , wenn es nicht behandelt wird es an die Debugger ein geworfen wird zweites Mal, Ihnen gibt Gelegenheit , etwas mit ihm in Ihren IDE vor und nach der Anwendung selbst zu tun. Dies scheint eine Erfindung von Microsoft Visual Studio zu sein.
catch
gibt, geht die Kontrolle dorthin. Wenn kein catch
Block vorhanden ist, wird die Unterbrechung "zweite Chance" angezeigt . Diesmal lautet die Meldung " Eine nicht behandelte Ausnahme vom Typ" foo "ist in YourApp.exe aufgetreten . Von hier aus wird der Versuch, fortzufahren oder weiterzugehen, nicht erfolgreich sein.
Ausnahmemeldungen der ersten Chance werden ausgelöst, wenn eine Ausnahme ausgelöst wird. Benachrichtigungen der zweiten Chance sind, wenn sie nicht abgefangen werden. (Chance - als Gelegenheit, in den Code im Debugger einzubrechen).
Ich habe gerade angefangen, den Debugger zu verwenden, und bin darauf gestoßen. Bei meinen Recherchen habe ich den MSDN-Blogbeitrag gefunden. Was ist eine Ausnahme der ersten Chance? das hat es für mich geklärt.
Die großen Erkenntnisse aus dem Blog-Beitrag sind für mich, dass es sich um eine Benachrichtigung an den Debugger handelt und nicht um etwas, das mein Code unbedingt verarbeiten müsste, und vor allem: "Ausnahmemeldungen der ersten Chance bedeuten meistens nicht, dass es ein Problem in der gibt." Code."
Wenn eine Anwendung debuggt wird, wird der Debugger benachrichtigt, wenn eine Ausnahme auftritt. Zu diesem Zeitpunkt wird die Anwendung angehalten und der Debugger entscheidet, wie die Ausnahme behandelt wird. Der erste Durchgang durch diesen Mechanismus wird als "First Chance" -Ausnahme bezeichnet.
Abhängig von der Konfiguration des Debuggers wird entweder die Anwendung fortgesetzt und die Ausnahme weitergeleitet, oder die Anwendung wird angehalten und in den Debug-Modus versetzt. Wenn die Anwendung die Ausnahme behandelt, wird sie normal weiter ausgeführt.
Ausnahmemeldungen der ersten Chance bedeuten meistens nicht, dass ein Problem im Code vorliegt. Bei Anwendungen / Komponenten, die Ausnahmen ordnungsgemäß behandeln, teilen Ausnahmemeldungen der ersten Chance dem Entwickler mit, dass eine Ausnahmesituation aufgetreten ist und behandelt wurde.
Aus Entwicklersicht handelt es sich eher um eine Ausnahme der zweiten Chance, da dies bedeuten würde, dass sie nicht im Code behandelt wurde . daher würde die Anwendung aufhören.
Die erste Chance könnten viele von ihnen sein, aber diejenigen, die sich aus entwicklungspolitischer Sicht um mehr kümmern, sind die zweite Chance, da dies zu einem Absturz der Anwendung führen würde.
finally
Blöcke ausgeführt werden . Sobald das System entschieden hat, wer eine Ausnahme abfangen wird (und festgestellt hat, dass tatsächlich jemand eine Ausnahme abfangen wird), beginnt das System, den Stapel abzuwickeln. Beachten Sie, dass, wenn eine Ausnahme von einemfinally
Block ausgelöst wird ...