Tritt eine Exception auf, muss man als Entwickler meist einen langen Stack-Trace lesen.
Möchte man zum Beispiel die „Hard-Facts“ einer größeren Anwendung für Statistikzwecke in einer Datenbank strukturiert ablegen, benötigt man Möglichkeiten an die Datei, die Methode und die Zeilennummer heran zu kommen.
Im .NET-Framework gibt es hierzu hilfreiche Methoden wie das folgende Snippet demonstriert.
Die Ausgabe auf der Konsole wäre für dieses Snippet:
Exception message: Exception of type 'System.Exception' was thrown.
Exception in file: D:\Users\t14011a\source\repos\ConsoleApp1\ConsoleApp1\Program.cs
Exception in method: Void Main(System.String[])
Exception at line numer: 12
using System;
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
try
{
throw new Exception();
}
catch (Exception ex)
{
var stackTrace = new StackTrace(ex, true);
var frame = stackTrace.GetFrame(0);
Console.WriteLine("Exception message: {0}", ex.Message);
Console.WriteLine("Exception in file: {0}", frame.GetFileName());
Console.WriteLine("Exception in method: {0}", frame.GetMethod());
Console.WriteLine("Exception at line numer: {0}", frame.GetFileLineNumber());
Console.Read();
}
}
}
}
Kommentare zum Snippet