C#异常处理

语法结构

try 
            { 
      
            }
            catch(< exceptionType> e)
            {
                
            }finally

对异常处理的语法结构如下(包含了三个关键字):

  1. catch块可以有0个或多个,finally可以有0个或1个
  2. 如果没有catch块,必须有finally块,没有finally块,必须有catch块,catch和finally可以同时存在

代码块功能

try:包含可能出现异常的代码
catch:代码发生异常,若异常的类型和catch块中类型一致,将执行该catch块,如果catch没有参数,则发生任何异常都执行该catch块
finally:最终会执行的代码,发生任何异常都会执行

代码示例与运行结果

static void Main(string[] args)
        {
            try
            {
                int[] myArray = {1,2,3,4};
                int a = myArray[4];
            }
            catch(IndexOutOfRangeException e)
            {
                Console.WriteLine("访问时下标越界");
            }
            finally
            {
                Console.WriteLine("这里是finally执行的代码");
            }
            
        }

在这里插入图片描述

常见异常种类

SystemException 其他用户可处理的异常的基本类
ArgumentException 方法的参数是非法的
ArgumentNullException 一个空参数传递给方法,该方法不能接受该参数
ArgumentOutOfRangeException 参数值超出范围
ArithmeticException 出现算术上溢或者下溢
ArrayTypeMismatchException 试图在数组中存储错误类型的对象
BadImageFormatException 图形的格式错误
DivideByZeroException 除零异常
DllNotFoundException 找不到引用的DLL
FormatException 参数格式错误
IndexOutOfRangeException 数组索引超出范围
InvalidCastException 使用无效的类
InvalidOperationException 方法的调用时间错误
MethodAccessException 试图访问思友或者受保护的方法
MissingMemberException 访问一个无效版本的DLL
NotFiniteNumberException 对象不是一个有效的成员
NotSupportedException 调用的方法在类中没有实现
NullReferenceException 试图使用一个未分配的引用
OutOfMemoryException 内存空间不够
PlatformNotSupportedException 平台不支持某个特定属性时抛出该错误
StackOverflowException 堆栈溢出

SystemException 运行时产生的所有错误的基类。
IndexOutOfRangeException 当一个数组的下标超出范围时运行时引发。
NullReferenceException 当一个空对象被引用时运行时引发。
InvalidOperationException 当对方法的调用对对象的当前状态无效时,由某些方法引发。

ArgumentException 所有参数异常的基类。
ArgumentNullException 在参数为空(不允许)的情况下,由方法引发。
ArgumentOutOfRangeException 当参数不在一个给定范围之内时,由方法引发。
InteropException 目标在或发生在CLR外面环境中的异常的基类。
ComException 包含COM类的HRESULT信息的异常。
SEHException 封装Win32结构异常处理信息的异常。
SqlException 封装了SQL操作异常。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值