O'Reilly logo

C# Cookbook by Jay Hilyard, Stephen Teilhet

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

5.11. Displaying Exception Information

Problem

There are several different methods of displaying exception information. You need to choose the best one to use.

Solution

The .NET platform supports several methods for displaying exception information, depending on the specific type of information that you want to show. The easiest method is to use the ToString method of the thrown exception object, usually in the catch block of an exception handler:

catch(Exception e)
{
    Console.WriteLine(e.ToString( ));
}

Another method is to manually display the individual properties of the thrown exception and iterate through each inner exception, if any exist. For example, the following custom method is called from a catch block that takes a single exception object as a parameter and proceeds to display its information, including information on all inner exceptions:

public void DisplayException(Exception e) { Console.WriteLine("Outer Exception."); Console.WriteLine("ExceptionType: " + e.GetType( ).Name); Console.WriteLine("HelpLine: " + e.HelpLink); Console.WriteLine("Message: " + e.Message); Console.WriteLine("Source: " + e.Source); Console.WriteLine("StackTrace: " + e.StackTrace); Console.WriteLine("TargetSite: " + e.TargetSite); string indent = "\t"; Exception ie = e; while(ie.InnerException != null) { ie = ie.InnerException; Console.WriteLine("Inner Exception."); Console.WriteLine(indent + "ExceptionType: " + ie.GetType( ).Name); Console.WriteLine(indent + "HelpLink: " + ie.HelpLink); Console.WriteLine(indent ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required