This tutorial will show you how to create your own exceptions by using a class derived from System.ApplicationException.
This is the continuation of the tutorial named Handling and throwing exceptions. I recommend you read that tutorial first.
In that tutorial, at the end you saw how to throw your own exceptions. Here will do the same thing, but a bit more complicated because now you’ll be able to customize the exception.
Create a new Console Application project named customExceptions in Microsoft Visual Studio .NET.
First we’ll have to create the class derived from System.ApplicationException:
// Creating the class derived from System.ApplicationException
public class NumberZeroException : System.ApplicationException
{
// The constructor that takes msg as a parameter
public NumberZeroException(string msg) : base(msg)
{
}
}
As you can see, it’s nothing more than a class derived from System.ApplicationException with a constructor that takes the msg as a parameter.
Here’s Class1 where we actually throw the exception if the user enters ‘0’.
class Class1
{
[STAThread]
static void Main(string[] args)
{
// Prompt the user to enter an integer
Console.WriteLine("Please input an integer: ");
// Try this block of code
try
{
// Store the input in x
int x = Convert.ToInt32(Console.ReadLine());
// If the number entered is 0...
if(x == 0)
{
// ...throw our custom exception with the following message parameter
throw new NumberZeroException("You are not allowed to enter number 0");
}
// Show what the user entered (if it ain't 0)
Console.WriteLine("You entered: " + x.ToString());
}
// Catch the custom exception
catch(NumberZeroException e)
{
// And display the error message
Console.WriteLine("Error: " + e.Message);
}
}
}
The code is fully commented so I suppose you have no problem understanding it.
Now let’s compile it and enter ‘0’ when prompted:
Please input an integer: 0 Error: You are not allowed to enter number 0 Press any key to continue |
That’s all.