Throwing Exceptions
You can make your code explicitly raise an exception by using the throw statement. The syntax for the throw statement is the following:
For example, following code will throw exception when supplied file name and display file content when the file exist is not exist:
This code produces the following output:
throw [Exception Object];
For example, following code will throw exception when supplied file name and display file content when the file exist is not exist:
class Program
{
static void readFile(string fileName)
{
if(File.Exists(fileName))
{
FileStream myFile = File.OpenRead(fileName);
int data;
do
{
data=myFile.ReadByte();
if (data == -1)
return;
else
Console.Write((char)data);
}while(true);
}
else
{
throw new ArgumentNullException();
}
}
static void Main(string[] args)
{
try
{
readFile("a.txt");
}
catch(ArgumentNullException)
{
Console.WriteLine("File not exist");
}
}
}
Throwing Without an Exception Object
The throw statement can also be used without an exception object, inside a catch block with following restriction:- This form rethrows the current exception, and the system continues its search for additional handlers for it.
- This form can be used only inside a catch statement.
class Program
{
public static void PrintArg(string arg)
{
try
{
try
{
if (arg == null)
{
ArgumentNullException myEx = new ArgumentNullException("arg");
throw myEx;
}
Console.WriteLine(arg);
}
catch (ArgumentNullException e)
{
Console.WriteLine("Inner Catch: {0}", e.Message);
throw;
}
}
catch
{
Console.WriteLine("Outer Catch: Handling an Exception.");
}
}
static void Main()
{
string s = null;
PrintArg(s);
Console.Read();
}
}
This code produces the following output:
Inner Catch: Value cannot be null.
Parameter name: arg
Outer Catch: Handling an Exception.
Parameter name: arg
Outer Catch: Handling an Exception.
0 comments:
Post a Comment