Sprache: C#
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:
[code]Exception message: Exception of type 'System.Exception' was thrown.
Exception in file: D:Userst14011asourcereposConsoleApp1ConsoleApp1Program.cs
Exception in method: Void Main(System.String[])
Exception at line numer: 12[/code]
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();
}
}
}
}
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();
}
}
}
}
Alte URL:
/snippet/methode-datei-und-zeilennummer-einer-exception-bestimmen/15209