Feedback

C# - Methode, Datei und Zeilennummer einer Exception bestimmen

Veröffentlicht von am 25.01.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

GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

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!