C#try-catch和finally语句

在C#中,finally块用于在try块中的代码执行完毕后,无论是否发生异常,始终执行某些清理操作。它通常与trycatch块一起使用。finally块是可选的,但它必须跟在try块或try-catch块之后。finally块中的代码无论是否有异常抛出都会执行,因此常用于释放资源,例如关闭文件、释放内存等。

以下是一个示例:

try
{
    // 可能抛出异常的代码
}
catch (Exception ex)
{
    // 处理异常的代码
}
finally
{
    // 始终执行的清理代码
}

在这个结构中:

  • try块包含可能会引发异常的代码。
  • catch块用于捕获和处理异常。
  • finally块包含需要始终执行的代码,无论是否发生异常。

虽然finally块通常与try块一起使用,但如果没有任何资源需要清理或者其他必须执行的操作,那么可以不使用finally块。

try 和 catch 还有finally语句

public int Add(string arg1,string arg2)
{
    int a=0;
    int b=0;
    bool hasError =false;
    try 
    {
        a=int.Parse(arg1);
        b=int.Parse(arg2);
    }
    catch(ArgumentNullException ane)
    {
        Console.WriteLine(ane.Message);
        hasError=true;
    }
    catch(FormatException fe)
    {
        Console.WriteLine(FormatException fe);
        hasError=true;
    }
    catch(OverflowException oe)
    {
        Console.WriteLine(oe.Message);
        hasError=true;
    }
    finally //就算前面出现异常,finally里面的语句也会执行,可以用来释放系统资源。
    {
        if(hasError)
        {
            Console.WriteLine("Execution has error!");
        }
        else
        {
            Console.WriteLine("Done!");    //可以用来确定是正确输出或是错误输出
        }
    }
    int result= a+b;
    return result;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值