Eine erste Chance
-
22-08-2019 - |
Frage
habe bereits über die MSDN-Hilfe-Dokumente läuft ein Dreh Visual Basic zu erhalten. Nach dem Versuch, das Beispiel mit Timer aus --one ein Etikett und Timer-Komponente in den Designer zieht und fügt die folgenden an die Komponenten-Unterprogramm
Label1.Text = My.Computer.Clock.LocalTime.ToLongTimeString
Der Ausgang für die sofortigen Fenster während debug ist die folgende
Eine erste Chance Ausnahme des Typs ‚System.InvalidCastException‘ aufgetreten in Microsoft.VisualBasic.dll
Ein erster Chance Ausnahme des Typs ‚System.InvalidCastException‘ aufgetreten in Microsoft.VisualBasic.dll
Der gleiche Fehler tritt auf einem vorherigen MSDN Beispiel eine Kontextmenü-Komponente. Sollte ich Try...Catch...Finally
diesen Fehler und versuchen, sich zu bewegen? Oder bin ich mit etwas viel ernster zu tun?
Lösung
Wenn Sie etwas über eine erste Chance zu sehen, es bedeutet nur, dass eine Ausnahme innerhalb des Codes gefangen wurde Du genannt, aber nicht notwendigerweise bedeutet, dass der Code fehlgeschlagen. Wenn der Code ausgeführt wird, ohne Ihr Programm verursacht einen gültigen Wert zum Absturz zu bringen und gibt, dann hat kein Problem. Sie werden auch die Ausgabe im Debug-Fenster über erste Chance Ausnahmen sehen, wenn Sie Ihre eigenen try / catch-Blöcke implementieren.
Andere Tipps
In dem Debug-Menü -> Ausnahmen, können Sie den Debugger aktivieren zu stoppen, wenn eine Exception zuerst ausgelöst wird, auch wenn es später gefangen werden würde; wenn Sie wollen herausfinden, was passiert ist, ist dies der einfachste Weg, es zu tun
In der ersten Chance Ausnahme der Details der Ausnahme überprüfen. Sie sollten einen Stapelrahmen / trace-Eigenschaft. Dort sollten Sie sehen, was die Fehlerzeile tritt auf. Dies sollte Ihnen helfen.
In der IDE versuchen Sie auf Extras> Optionen> Projekte und Lösungen> VB Defaults und Einstellung Option Strict auf ‚On‘ - dieser Fang Gießproblemen helfen kann, wenn Sie Ihr Projekt kompilieren, anstatt wenn Sie es ausführen
.A 'erste Chance execption' bedeutet nicht unbedingt ein Problem in Ihrem Code haben. Es könnte die IDE oder der Compiler oder jede andere beteiligte Komponente angetroffen bedeuten und behandelt einen Fehler und in den Prozess der Debugger informiert wird und die Ausnahme von der sofortigen Fenster wird berichtet. Dies ist ein ausgezeichneter Beitrag zum Thema:
http://blogs.msdn.com/davidklinems /archive/2005/07/12/438061.aspx
Eine schnelle und einfache Lösung für Debug- und diag erste Chance Ausnahme ist:
AppDomain.CurrentDomain.FirstChanceException += CurrentDomainOnFirstChanceException;
und dann
private void CurrentDomainOnFirstChanceException(object sender, FirstChanceExceptionEventArgs firstChanceExceptionEventArgs)
{
if (firstChanceExceptionEventArgs.Exception is NullReferenceException)
{
// do your handling and debugging :)
}
}
Mehrere erste Chance während der Laufzeit können Sie die Leistung Ihrer Anwendung lahmlegen, weil die Ausnahmebehandlung ist teuer. Gerade in Web-Anwendungen. Sie können diesen Handler hinzufügen und sehen Sie spezifische erste Chance Ausnahmen und versuchen, sie zu vermeiden / korrigieren.