Freigeben über


Fehlerbehandlung in Visual Studio-Erweiterungen

Ausnahmen treten wahrscheinlich in jedem Programm, einschließlich Visual Studio-Erweiterungen, auf. Stellen Sie sicher, dass wir sie korrekt behandeln, um die Benutzererfahrungen zu optimieren, wenn sie auftreten.

Wenn eine Ausnahme eine Anomalie ist, die nicht geschehen sollte, möchten Sie die Details der Ausnahme auf eine Weise protokollieren, die Sie beheben können. Je nach Schweregrad des Problems möchten Sie den Benutzer möglicherweise auch darüber informieren.

Einschließen der Symbole

Um sicherzustellen, dass Sie über die genauesten Informationen zu der Ausnahme verfügen, die aufgetreten ist, stellen Sie sicher, dass Sie die PDB-Datei in die Erweiterung einschließen. Dies ist standardmäßig aktiviert, aber stellen Sie sicher, dass sie überprüfen, indem Sie die Eigenschaften (F4) Ihres Projekts anzeigen.

Include the PDB file in the VSIX container.

Stellen Sie sicher, dass sie die Eigenschaft Include Debug Symbols in VSIX Container auf True festlegen.

Dadurch können Sie die benötigten Informationen sammeln. Sehen wir uns einige Strategien für die entsprechende Vorgehensweise an.

Automatisierte Telemetrie

Sie können jeden Telemetriemechanismus verwenden, den Sie in jeder .NET-Anwendung aus Ihrer Erweiterung verwenden können. Beliebte Optionen sind Application Insights, Raygun, Google Analytics usw.

Sie müssen die Ausnahmedetails manuell über diese Telemetriesysteme mithilfe ihrer APIs melden. Diese Option ist eine hervorragende Möglichkeit, auf allen Problemen zu bleiben, die auf den Computern Ihres Benutzers auftreten, und Ihnen ermöglichen, probleme frühzeitig proaktiv zu beheben.

Wenn Sie diese Option verwenden, stellen Sie sicher, dass Sie sie in Ihrer Datenschutzerklärung Erwähnung, da einige Benutzer keine Telemetrie melden möchten.

Ausgabefenster protokollieren

Wenn Sie Blöcke zum Behandeln von Ausnahmen verwenden try/catch , kann es vorteilhaft sein, dem Benutzer mitzuteilen, was schief gelaufen ist. Auf diese Weise können sie das Problem auf einfache Weise an Sie melden, sodass Sie das Problem einfach beheben können.

Eine der besten Methoden besteht darin, die Ausnahmedetails im Ausgabefenster auszugeben. Auf diese Weise kann der Benutzer eine Ausnahme sehen und ihnen den Stacktrace zur Verfügung stellen, um Sie in einem Fehlerbericht zu senden.

Das Community Toolkit macht es super einfach, dies zu tun. Verwenden Sie in synchronen Kontexten einfach die Log() Erweiterungsmethode für alle Exception.

try
{
    // Do work;
}
catch (Exception ex)
{
    ex.Log();
}

Bei asynchronen Kontexten wird dasselbe ausgeführt, indem sie auf die LogAsync() Erweiterungsmethode wartet.

try
{
    // Do work;
}
catch (Exception ex)
{
    await ex.LogAsync();
}

Den Benutzer benachrichtigen

Wenn die Ausnahme für den Benutzer einen niedrigen Schweregrad aufweist, gibt es keinen Grund, sie zu unterbrechen. Erwägen Sie die Verwendung der Statusleiste, um anzuzeigen, dass ein Fehler aufgetreten ist.

Wenn die Ausnahme schwerwiegend ist und bewirkt, dass der Benutzerfluss unterbrochen wird, sollten Sie ein Meldungsfeld verwenden, um den Benutzer über den Fehler zu informieren. Stellen Sie sicher, dass Sie die Ausnahme weiterhin über Telemetrie und/oder das Ausgabefenster protokollieren, wie zuvor beschrieben.

Weitere Informationen zur Verwendung der Statusleiste und meldungsfelder finden Sie im Rezept für Benachrichtigungen.