简单的异常例子

 



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleAppTestDemo1
{
class TestDemo1
{
static void Main(string[] args)
{
Calculator c = new Calculator();
int r = 0;
Console.WriteLine("int MaxValue : {0}", int.MaxValue);

try
{
r = c.Add(args[0], args[1]);
}
catch(IndexOutOfRangeException e)
{
Console.WriteLine("IndexOutOfRangeException ...");
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
catch (OverflowException oe)
{
Console.WriteLine("OverflowException ...");
Console.WriteLine(oe.Message);
Console.WriteLine(oe.StackTrace);
}
catch (Exception e)
{
Console.WriteLine("Exception ...");
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
Console.WriteLine(r);
}

}

class Calculator
{
public int Add(string arg1, string arg2)
{
int a = 0;
int b = 0;
int result = 0;
bool hasError = false;

try
{
a = int.Parse(arg1);
b = int.Parse(arg2);
result = checked(a + b);
}
catch (ArgumentNullException ane)
{
Console.WriteLine("ArgumentNullException ...");
Console.WriteLine(ane.Message);
Console.WriteLine(ane.StackTrace);
hasError = true;
}
catch (FormatException fe)
{
Console.WriteLine("FormatException ...");
Console.WriteLine(fe.Message);
Console.WriteLine(fe.StackTrace);
hasError = true;
}
catch (OverflowException oe)
{
hasError = true;
throw oe;
}
catch (Exception e)
{
hasError = true;
throw e;
}
finally
{
if (hasError)
{
Console.WriteLine("Exception has error!");
}
else
{
Console.WriteLine("Done!");
}
}

return result;
}
}
}


 

======= End