C# MSDN中的示例不起作用-try/finally
我一直在阅读有关MSDN上的try/finally的内容,并发现了以下代码。他们说它将运行Finally子句,但当我运行它时,它不会继续运行,也不会运行它。有什么问题C# MSDN中的示例不起作用-try/finally,c#,exception-handling,C#,Exception Handling,我一直在阅读有关MSDN上的try/finally的内容,并发现了以下代码。他们说它将运行Finally子句,但当我运行它时,它不会继续运行,也不会运行它。有什么问题 public class TestTryFinally { public static void Main() { int i = 123; string s = "Some string"; object o = s
public class TestTryFinally
{
public static void Main()
{
int i = 123;
string s = "Some string";
object o = s;
try
{
// Invalid conversion; o contains a string not an int
i = (int)o;
}
finally
{
Console.Write("i = {0}", i);
}
}
}
我觉得不错。它确实将运行finally块。我猜调试器正在为您弹出一个对话框,而您没有设法强制执行继续
不要在调试器下运行它-这将避免调试器在试图“帮助”您时碍事。在我看来很好。它确实将运行finally块。我猜调试器正在为您弹出一个对话框,而您没有设法强制执行继续
不要在调试器下运行它-这将避免调试器在试图“帮助”您时妨碍您。您确定窗口关闭的速度不会太快以至于您没有注意到吗 放入一个readline使其等待:
public class TestTryFinally
{
public static void Main()
{
int i = 123;
string s = "Some string";
object o = s;
try
{
// Invalid conversion; o contains a string not an int
i = (int)o;
}
finally
{
Console.Write("i = {0}", i);
Console.Write("Press Enter to continue.");
Console.ReadLine();
}
}
}
你确定窗户关得太快以至于你没有注意到吗 放入一个readline使其等待:
public class TestTryFinally
{
public static void Main()
{
int i = 123;
string s = "Some string";
object o = s;
try
{
// Invalid conversion; o contains a string not an int
i = (int)o;
}
finally
{
Console.Write("i = {0}", i);
Console.Write("Press Enter to continue.");
Console.ReadLine();
}
}
}
仅扩展Jon Skeet的答案,如果捕获到异常,调试器将不会弹出
try {
i = (int)o;
}
catch(InvalidCastException e) {}
finally {
Console.Write("i = {o}",i);
}
仅扩展Jon Skeet的答案,如果捕获到异常,调试器将不会弹出
try {
i = (int)o;
}
catch(InvalidCastException e) {}
finally {
Console.Write("i = {o}",i);
}
你能解释一下“弹出”是什么吗?西蒙:他指的是异常弹出。你能解释一下“弹出”是什么吗?西蒙:他指的是异常弹出。