C#中的异常捕获 try catch finally

处理异常提供的四个关键字,try...catch...finally...throw
finally 最后,不管异常是否被抛出都会执行,例如 打开一个文件,不管是否出现异常都需要关闭,
throw: 当问题出现的时候 程序可以抛出一个异常,使用throw关键字抛出异常,

try{执行的代码}

catch(ExceptionName e1){处理异常 throw 抛出异常}
catch(ExceptionName e1){处理异常 throw 抛出异常}
finally{执行的代码}

 Test t1 = new Test();
 try
 {
     Console.WriteLine("1");
     t1.Age = 250;
     Console.WriteLine("2");
 }

 Exception 可以捕获所有的错误类型,如果写的不同类型的错误的时候只能捕获对应类型的错误,例如

FormatException(格式错误) ObjectDisposedException(超出有效范围) IndexOutOfRangeException(数组越界) DataMisalignedException(除数为0); 所以一般把Exception 捕获所有错误类型catch 写到最后

catch (Exception e)
{
    Console.WriteLine(e.Message);
    Console.WriteLine("3");
    // throw e; 抛出错误 立马停掉
    // 解决异常 一般不要直接在catch 直接throw
    // 2.一般在catch 复制一个合法的值
    t1.Age = 20;
}
finally
{
    Console.WriteLine("4");
}
Console.WriteLine(t1.Age);

 Test类

class Test
{
    private int age = 10;
    public int Age
    {
        set
        {
            if (value>0 &&value < 150)
            {
                age = value;
            }
            else
            {
                // 如果超过150 处理抛出一个异常
                // IndexOutOfRangeException 索引超出范围的异常
                throw new IndexOutOfRangeException("age must less 150");
            }
        }
        get
        {
            return age;
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值