C#异常处理

目录

1.1异常处理概述

1.1.1公共异常类

1.2异常处理语句

1.2.1try...catch语句

1.2.2try...catch...finally语句

 1.2.3throw语句


1.1异常处理概述

在编写程序时,不仅要关心程序的正常操作,还应该检查代码错误及可能发生的各类不可预期的事件。异常处理可以捕获程序执行所发生的错误,通过异常处理可以有效、快速地构建各种用来处理程序异常情况的程序代码。

1.1.1公共异常类

异常类说明
System.ArithmeticException在算术运算期间发生异常
System.ArrayTrpeMismatchException当存储一个数组时,如果由于被存储的元素的实际类型与数组的实际类型不匹配而导致报错
System.DivideByZeroException在试图用零除整数数值时引发
System.IndexOutOfRangeException在试图用小于零或超出数组界限的下标索引数组时引发
System.InvalidCasException如果从基类型或接口到派生类型的显示转换在运行时失败,就会引起异常
System.NullReferenceException在需要使用引用对象的场合,如果使用Null引用,就会引起异常
System.OutOfMemoryException在分配内存的尝试失败时引发
System.OverflowException在选中的上下文中进行算术运算、类型转换或转换操作溢出时引发
System.StackOverflowException挂起的方法调试过多而导致堆栈溢出时引发
System.TypeInitializationException静态构造函数引发异常并且没有捕捉到它的catch子句时引发

1.2异常处理语句

1.2.1try...catch语句

在try语句中防止可能发生异常的程序代码,从而对这些程序代码进行监控;在catch后面防止处理错误的程序代码。代码格式如下:
 

try
{
    //可能出现的异常代码
}
catch(异常类名 异常变量名)
{
    //进行异常处理的代码
}

案例:

            int a, b;
            try
            {
                a = 1;
                b = 0;
                int c = a / b;
                Console.WriteLine("运行成功");
            }
            catch (Exception e)
            {
                Console.WriteLine( "运行失败");
            }

Exception是一个基类,所有异常类都继承自它,你自己封装一个也要继承,ex是实现它的实例对象,取啥名随你,一般叫e,取出异常信息直接e.属性名,例如e.message可取出错误信息,当然是否实例化就随你了,因为try catch就是尝试执行try中代码,执行有错误就跳到catch中执行,那我完全可以不实例化e,直接在catch中写throw new Exception(“出错了。。。。”),我完全不需要用e,因为它一旦执行就意味着try中出错了A

1.2.2try...catch...finally语句

将finally语句与try...catch语句相结合,形成try...catch...finally语句。finally语句同样以区块的方式存在,它被放在所有try...catch语句的最后面,程序执行完毕,最后都会跳到finally语句区块,执行其中代码。无论程序是否异常,最后都会执行finally语句区块中的程序代码,其基本格式如下:
 

try
{
    //被监控的代码
}
catch(异常类名 异常变量)
{
    //异常处理代码
}
...
finally
{
    //程序代码
}

使用catch语句是为了允许处理异常。无论是否发生异常,使用finally子句即可执行清理代码。如果分配了昂贵或有限的资源,则应该释放这些资源的代码放置在finally区块中。

 1.2.3throw语句

throw语句用于主动引发一个异常,使用throw语句可以在特定的情形下,自行抛出异常。
throw语句通常与try...catch或try...finally语句一起使用。当引发异常时,程序查找处理此异常的catch语句。也可以使用throw语句重新引发已捕获的异常。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值