web analytics
Exception Properties in C# Options
codeling
Posted: Thursday, February 22, 2018 10:21:36 AM

Rank:Advanced Member
Groups: Member
Joined: 12/11/2015
Posts: 984
Points: 4146

Exceptions can be thrown by your C# application or the runtime. Your application uses the try and catch blocks to structure our error handling.

using System;

class Program
{
    static void Main()
    {
        try
        {
            int value = 1 / int.Parse("0");
            Console.WriteLine(value);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}

Output

Attempted to divide by zero.
Threre are a lot properties you can read to determine what happned when an exception is thrown.

HelpLink: This is empty because it was not defined on the exception. HelpLink is a string property.

Message: This is a short description of the exception's cause. Message is a read-only string property.

Source: This is the application name. Source is a string property that can be assigned to or read from.

StackTrace: This is the path through the compiled program's method hierarchy that the exception was generated from.

TargetSite: This is the name of the method where the error occurred. This property helps simplify what part of the errors are recorded.



using System;

class Program
{
    static void Main()
    {
        try
        {
            int value = 1 / int.Parse("0");
        }
        catch (Exception ex)
        {
            Console.WriteLine("HelpLink = {0}", ex.HelpLink);
            Console.WriteLine("Message = {0}", ex.Message);
            Console.WriteLine("Source = {0}", ex.Source);
            Console.WriteLine("StackTrace = {0}", ex.StackTrace);
            Console.WriteLine("TargetSite = {0}", ex.TargetSite);
        }
    }
}

Output: truncated

HelpLink =
Message = Attempted to divide by zero.
Source = ConsoleApplication1
StackTrace =    at Program.Main() in C:\...\Program.cs:line 9
TargetSite = Void Main()
Sponsor
Posted: Thursday, February 22, 2018 10:21:36 AM
 
codeling
Posted: Thursday, February 22, 2018 10:29:12 AM

Rank:Advanced Member
Groups: Member
Joined: 12/11/2015
Posts: 984
Points: 4146

Data Property

It is possible to store structured data on an exception that is thrown in one part of your program, and then later read in this data. With Data we store associate keys and values. In the following example,  a new exception is allocated and then some value is assigned to the Data property.

using System;
using System.Collections;

class Program
{
    static void Main()
    {
        try
        {
            // Create new exception.
            var ex = new DivideByZeroException("Message");
            // Set the data dictionary.
            ex.Data["Time"] = DateTime.Now;
            ex.Data["Flag"] = true;
            // Throw it.
            throw ex;
        }
        catch (Exception ex)
        {
            // Display the exception's data dictionary.
            foreach (DictionaryEntry pair in ex.Data)
            {
                Console.WriteLine("{0} = {1}", pair.Key, pair.Value);
            }
        }
    }
}

Output

Time = 12/9/2018 10:10:10 AM
Flag = True

Users browsing this topic
Guest

Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.


© 2018 Digcode.com. All rights reserved.