c#异常处理的小例子

程序运行结果如下:
在这里插入图片描述
代码如下:
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();
    }

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreenHandBruce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值