程序运行结果如下:
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class RectPrimary
{
private double dWidth = 0d;
private double dHeight = 0d;
public void setWidth(double dlen)
{
dWidth = dlen;
}
public void setHeight(double dlen)
{
dHeight = dlen;
}
public double getWidth()
{
return dWidth;
}
public double getHeight()
{
return dHeight;
}
public static RectPrimary operator+ (RectPrimary rc1,RectPrimary rc2)
{
RectPrimary tempRect = new RectPrimary();
tempRect.setWidth(rc1.getWidth()+rc2.getWidth());
tempRect.setHeight(rc1.getHeight()+rc2.getHeight());
return tempRect;
}
}
class Program
{
public int division(int[] num1)
{
int nResult = 0;
nResult = num1[0] / num1[1];
return nResult;
}
static void Main(string[] args)
{
Program pg = new Program();
int nresult = 0;
int[] anum = new int[1] {1};
int[] anum2 = new int[2] { 1,0 };
try
{
nresult = pg.division(anum);//被除数为0的异常
nresult = pg.division(anum2);//数组越界的异常(当程序运行完上一行的时候,系统就捕捉到了异常,此时,本行代码就会被跳过!)
}
catch(DivideByZeroException e)//被除数为0的异常
{
Console.WriteLine("Exception caught:{0}", e);
}
catch(IndexOutOfRangeException e)//处理当方法指向超出范围的数组索引时生成的错误。
{
Console.WriteLine("Exception caught:{0}", e);
}
catch(System.IO.IOException e)// 处理 I/O 错误。
{
Console.WriteLine("Exception caught:{0}", e);
}
catch (ArrayTypeMismatchException e)// 处理当数组类型不匹配时生成的错误。
{
Console.WriteLine("Exception caught:{0}", e);
}
catch (NullReferenceException e)// 处理当依从一个空对象时生成的错误。
{
Console.WriteLine("Exception caught:{0}", e);
}
catch (InvalidCastException e)// 处理在类型转换期间生成的错误。
{
Console.WriteLine("Exception caught:{0}", e);
}
catch (OutOfMemoryException e)// 处理空闲内存不足生成的错误。
{
Console.WriteLine("Exception caught:{0}", e);
}
catch (StackOverflowException e)// 处理栈溢出生成的错误。
{
Console.WriteLine("Exception caught:{0}", e);
}
finally
{
Console.WriteLine("Result :{0}", nresult);//finally 块用于执行给定的语句,不管异常是否被抛出都会执行
}
Console.ReadKey();
}
}
}