Ich versuche, eine unbehandelte Ausnahme-Handler in. NET (C#) hinzufügen, die so hilfreich für den "Benutzer" wie möglich sein sollte. Die Endanwender sind meist Programmierer, also brauchen sie nur einen Hinweis darauf, welches Objekt sie falsch manipulieren.In einer .net Exception, wie ein Stacktrace mit Argument Werten
Ich entwickle ein Fenster ähnlich dem Windows XP Fehlerbericht, wenn eine Anwendung abstürzt, aber das gibt so viel sofortige Informationen wie möglich über die Ausnahme geworfen.
Während der Stack-Trace ermöglicht mir (da ich den Quellcode habe), um die Quelle des Problems zu lokalisieren, die Benutzer haben es nicht und so sind sie ohne weitere Informationen verloren. Unnötig zu sagen, dass ich viel Zeit damit verbringen muss, das Tool zu unterstützen.
Es gibt einige Systemausnahmen wie KeyNotFoundException, die von der Dictionary-Sammlung ausgelöst werden, die mich wirklich stören, da sie in der Nachricht den Schlüssel nicht enthalten, der nicht gefunden wurde. Ich kann meinen Code mit tonnenweise Versuchen Catch-Blöcke füllen, aber es ist ziemlich aggressiv und es ist viel mehr Code zu pflegen, nicht zu erwähnen, eine Tonne mehr Strings, die am Ende lokalisiert werden müssen.
Schließlich die Frage: Gibt es eine Möglichkeit, (zur Laufzeit) die Werte der Argumente jeder Funktion in der Call-Stack-Trace zu erhalten? Das allein konnte 90% der Supportanrufe auflösen.
Dies wurde bereits gut beantwortet, aber für zukünftige Referenz möchte ich auch einen Zeiger auf Raymond Chens exzellenten Blogartikel hinzufügen [Wann wird ein Objekt für die Garbage Collection verfügbar?] (Http: //blogs.msdn. com/b/oldnewthing/archive/2010/08/10/10048149.aspx) Unter anderem wird darauf hingewiesen, dass das zuverlässige Sammeln von Argumentwerten aus dem Stack-Trace unmöglich ist, da die Argumente gesammelt werden können, während die referenzierten Methoden noch ausgeführt werden . –
Ich habe diese https://stackoverflow.com/questions/2696691/can-i-get-the-method-local-variables-through-a-stack-trace-in-c gesehen, aber ich weiß nicht wie um das 'StackTrace' vom' Exception' Objekt zu bekommen. Das daran ist eine 'Zeichenfolge'. –