gpt4 book ai didi

c# - try/catch/finally 中 "finally"的用途是什么

转载 作者:IT王子 更新时间:2023-10-29 04:46:17 25 4
gpt4 key购买 nike

语法会因语言而异,但这是一个普遍的问题。

这有什么区别....

try
{
Console.WriteLine("Executing the try statement.");
throw new NullReferenceException();
}
catch (NullReferenceException e)
{
Console.WriteLine("{0} Caught exception #1.", e);
}
finally
{
Console.WriteLine("Executing finally block.");
}

还有这个....

try
{
Console.WriteLine("Executing the try statement.");
throw new NullReferenceException();
}
catch (NullReferenceException e)
{
Console.WriteLine("{0} Caught exception #1.", e);
}
Console.WriteLine("Executing finally block.");

我一直看到它被使用,所以我假设有一个很好的理由使用 finally,但我无法弄清楚它与仅将代码放在语句之后有什么不同,因为它仍然会运行。

有没有finally不运行的场景?

最佳答案

在您的示例中,这并没有太大区别。

想象一下,不过:

    try
{
Console.WriteLine("Executing the try statement.");
throw new NullReferenceException();
}
catch (SomeOtherException e)
{
Console.WriteLine("{0} Caught exception #1.", e);
}
finally
{
Console.WriteLine("Executing finally block.");
}

Console.WriteLine("Executing stuff after try/catch/finally.");

在这种情况下,catch 将不会捕获错误,因此永远不会到达整个 try/catch/finally 之后的任何内容。但是,finally block 仍会运行

关于c# - try/catch/finally 中 "finally"的用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com