我可以按照我的方式在try block之外的代码中使用“str”命名变量吗?
我有点困惑。
if ()
{
try
{
String str;
}
catch
{
//exception
}
String result=str; // Will this work ??? It's inside of IF block only.
}
答案 0 :(得分:2)
假设你想要字符串result = str; ......不,它不会工作。
答案 1 :(得分:1)
不,您在try
块中声明的任何内容都只能在try
块的范围内使用。
访问您在try
块中使用的变量的唯一方法是在try
块之前声明它。
答案 2 :(得分:1)
我认为您的问题是,您是否可以引用try块外部的try块中定义的变量。答案是否定的,但是你可以引用在try块之外定义的变量并在try块中设置如下:
string myVar;
try
{
myVar = "something";
}
catch {}
// now you can set otherVar to "something"
string otherVar = myVar;
答案 3 :(得分:1)
始终在try catch块之前声明变量,并将其初始化为null或默认值,以适用者为准。
如果您在try或catch中使用变量或者最后使用变量或者根本不使用变量,则无关紧要。它将为您节省麻烦,它将提高您的代码的可读性。
public void processSomeRequest()
{
string firstVariable = null;
string secondVariable = null;
int someInt = 0;
try
{
// Initialise variables
firstVariable = "test";
secondVariable = "blah";
// Process request code
}
catch(Exception e)
{
logException(e);
throw;
}
}
基本示例,但您知道从一开始就要使用什么。将突出显示未使用的变量。
答案 4 :(得分:0)
没有。声明仅限于try块。您甚至无法在catch区块中使用它。
答案 5 :(得分:0)
如果在范围内的块中声明变量({}
内的任何内容),则只能在其中使用。
答案 6 :(得分:0)
不,在try {}块之外声明你的“str”。