gpt4 book ai didi

c# - 最后在 C# 中阻塞

转载 作者:太空狗 更新时间:2023-10-29 23:03:24 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Finally Block Not Running??

我有一个关于 C# 中的 finally block 的问题。我写了一个小示例代码:

public class MyType
{
public void foo()
{
try
{
Console.WriteLine("Throw NullReferenceException?");
string s = Console.ReadLine();
if (s == "Y")
throw new NullReferenceException();
else
throw new ArgumentException();
}
catch (NullReferenceException)
{
Console.WriteLine("NullReferenceException was caught!");
}
finally
{
Console.WriteLine("finally block");
}
}
}

class Program
{
static void Main(string[] args)
{
MyType t = new MyType();
t.foo();
}
}

据我所知,finally block 假设确定性地运行,无论是否抛出异常。现在,如果用户输入“Y”——将抛出 NullReferenceException,执行将移至捕获时钟,然后如我所料移至 finally block 。但是如果输入是其他东西 - 抛出 ArgumentException。没有合适的 catch block 来捕获这个异常,所以我认为执行应该移动 finally block ——但它没有。有人可以解释一下为什么吗?

谢谢大家:)

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