Feedback

C# - Methode, Datei und Zeilennummer einer Exception bestimmen

Veröffentlicht von am 1/25/2019
(0 Bewertungen)
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();
            }
        }
    }
}

Abgelegt unter exception.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!