November 2008
Beginner
696 pages
17h 43m
English
The intrinsic exception types C# provides, coupled with the custom messages shown in the previous example, will often be all you need to provide extensive information to a catch block when an exception is thrown.
Sometimes, however, you will want to provide more extensive information or need special capabilities in your exception. It is a trivial matter to create your own custom exception class. Even though you’ll rarely need to do it, Example 16-7 illustrates the creation of a custom exception.
Example 16-7. Although C# provides a range of exceptions that you’ll use most of the time, you can define a custom exception if you need it
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Example_16_7_ _ _ _Custom_Exception
{
// custom exception class
public class MyCustomException : System.Exception
{
public MyCustomException(string message) :
base(message) // pass the message up to the base class
{
}
}
class Tester
{
public void Run()
{
try
{
Console.WriteLine("Open file here");
double a = 0;
double b = 5;
Console.WriteLine("{0} / {1} = {2}", a, b,
DoDivide(a, b));
Console.WriteLine("This line may or may not print");
}
// most derived exception type first
catch (System.DivideByZeroException e)
{
Console.WriteLine("\nDivideByZeroException! Msg: {0}",
e.Message);
Console.WriteLine("\nHelpLink: {0}\n", e.HelpLink);
}
// catch custom exception
catch (MyCustomException e)
{ Console.WriteLine("\nMyCustomException! Msg: {0}", e.Message); ...Read now
Unlock full access