我不能在Try {}范围中,在主范围中使用分配的变量,但是在catch {}中添加return之后可以吗?
作者:互联网
我试图弄清楚为什么这段代码能够使用try作用域中的变量.如果我没有实现return to catch {}会导致错误,但是使用catch in return会毫无问题地运行,我真的不明白为什么,我希望两者都会导致错误.那么为什么它能够运行?
static void Main(string[] args)
{
DayOfWeek favDay;
try
{
favDay = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), Console.ReadLine());
}
catch(Exception x)
{
Console.WriteLine(x.Message);
Console.ReadLine();
return; // Without implementing this return I cannot use variable favDay after in Main to pass it into Method.
}
Print(favDay);
Console.ReadLine();
}
static void Print(DayOfWeek x)
{
switch (x)
{
case DayOfWeek.Friday:
Console.WriteLine("Weieeeee");
break;
default:
Console.WriteLine(":(");
break;
}
}
感谢您的答复.
标签:try-catch,c 来源: https://codeday.me/bug/20191111/2020121.html