Ich füge einige benutzerdefinierte Eigenschaften meiner AppInsights Ereignisse Initialize
Methode der ITelemetryInitializer
verwenden. Einige von ihnen werden aus der Datenbank oder anderen Quellen abgerufen, die möglicherweise fehlschlagen. Die Frage ist, gibt es offizielle Empfehlungen von den Entwicklern, ob eine try-catch
Klausel in Initialize
Methode enthalten sein sollte?Ausnahme in App Insights Umgang TelemetryInitializer
Von dem, was ich beobachtet habe, eine Ausnahme in der Methode zu werfen wie erwartet nicht daran hindert, Telemetrie erscheinen, obwohl die benutzerdefinierten Eigenschaften nicht gesehen werden können. Kann ich mich auf dieses Verhalten verlassen? Beeinflusst es irgendwie die Leistung, dass ich Ausnahmen nicht manuell behandle und stattdessen den Code von AppInsights behandeln lasse?
Ich habe zu den gleichen Schlussfolgerungen kommen Sie haben, und ich möchte auf jeden Fall nicht auf dieses Verhalten verlassen, es sei denn, es irgendwo dokumentiert ist, das heißt ‚durch das SDK Jede Ausnahme von ITelemetryInitializer.Initialize geschluckt. Ausnahmen manuell erfassen, wenn Sie zusätzliche Aktionen ausführen möchten '. Im Grunde bin ich auf der Suche nach einer offiziellen Erklärung oder Dokumentation von MS, wie zum Beispiel Serilog für Anreicher, die klar angibt, dass ihre Ausnahmen geschluckt und von Design zu Self Log geschrieben werden. –
Was mehrere Eigenschaften anbelangt, habe ich mich dazu entschieden, separate Initialisierer für diesen Zweck zu verwenden, so dass die Wahl zwischen einem "Try-Catch" mit einem leeren Fangen um den gesamten Methodenkörper oder keinem "Try-Catch" besteht. –
Über diese offizielle Dokumentation würde ich nicht darauf zählen, sie zu finden. Diese SKDs sind global dokumentiert, aber ich habe noch nie so detailliert dokumentiert. Am besten ist der Quellcode selbst (https://github.com/Microsoft/ApplicationInsights-Home) oder fragen Sie nach einer offiziellen Erklärung auf einer der GitHub Repo-Seiten. –