黑马程序员技术交流社区
标题:
在try{}catch{}中定义变量,提示上下文不存在“××”变量
[打印本页]
作者:
追寻Dream
时间:
2013-9-24 09:11
标题:
在try{}catch{}中定义变量,提示上下文不存在“××”变量
本帖最后由 追寻Dream 于 2013-9-24 09:35 编辑
try
{
Console.WriteLine("请输入一个数");
int nmuber=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(nmuber);
}
catch
{
string input = Convert.ToString(number);//为什么提示当前上下文不存在number变量;
Console.WriteLine(input);
}
Console.ReadKey();
作者:
张云飞
时间:
2013-9-24 09:21
本帖最后由 张云飞 于 2013-9-24 09:25 编辑
在try{}catch(){}finally{}语句中,变量的作用域仅限于一个方法域,也就是同一个大括号。
这样你在try中定义的number在catch和finally中都是无效的。
因此,必须将公共变量或者引用定义在整个异常处理外边,然后在内部赋值,就OK了。
另:你此处的变量名也定义不一致,前边是“
nmuber
”,后边是“
number
”。
作者:
追寻Dream
时间:
2013-9-24 09:26
张云飞 发表于 2013-9-24 09:21
在try{}catch(){}finally{}语句中,变量的作用于仅限于一个方法域,也就是同一个大括号。
这样你在try中定 ...
谢谢了!刚刚发现了!
int number = 0; ;
try
{
Console.WriteLine("请输入一个数");
number = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(number);
}
catch
{
string input = Convert.ToString(number);
Console.WriteLine(input);
}
Console.ReadKey();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2