1.7 KiB
1.7 KiB
title
title |
---|
Exceptions |
Exceptions
An exception is an unexpected error that occurs while a program is running, such as an attempt to access a file that does not exist. It will stop the program if not handled.
Example
If we try to read the text of a file that does not exist:
using System.IO;
string content = File.ReadAllText(@"C:\DoesNotExist.txt");
A FileNotFoundException
will be raised.
Some other common exceptions:
IndexOutofRangeException
: Attempted to access an array with an invalid index.NullReferenceException
: Attempted to use an unassigned reference variable.DivideByZeroException
: Attempted to divide by 0.
Get The Message Inside An Exception
Whenever you use the generic Exception
catch all handler, you can grab the message of what caused the error each time. It is very simple to do so:
try
{
string content = File.ReadAllText(@"C:\DoesNotExist.txt");
}
catch (Exception ex)
{
string message = "";
if (ex.InnerException != null) {
message = ex.InnerException.Message;
}
else {
message = ex.Message;
}
Console.WriteLine(message);
}
Best Practices
Use try/catch/finally Blocks
try
{
var client = new WebClient();
var resultData = client.DownloadString("http://github.com");
}
catch (Exception ex)
{
//code for handling exceptions
}
finally
{
//this code is always executed, does not matter if an exception is thrown or not
}
Handle Possible Exceptions With Conditions
Instead of
try
{
conn.Close();
}
catch (Exception ex)
{
//code for handling exceptions.
}
Try this
if (conn.State != ConnectionState.Closed)
{
conn.Close();
}