try {
Man Fred = new Man();
} catch (exception e) {
Print e
}
Print Fred.getName ();
弗雷德现在已超出范围。我该怎么做?
答案 0 :(得分:4)
您似乎在伪
中了解Java语法 Man Fred = null;
try {
Fred = new Man();
} catch (exception e) {
print e
} finally {
//You could do some clean up.
}
if(Fred != null) {
print Fred.getName();
}
如果没有..
Man fred = null;
try {
fred = new Man();
} catch (Exception e) {
System.out.println(e.printStackTrace());
} finally {
//You could do some clean up.
}
if(fred != null) {
System.out.println(fred.getName());
}
Fred变量必须在try块之外声明。因此它在方法或外部范围内可见。
答案 1 :(得分:4)
现在正确的Java:
Man fred = null;
try {
fred = new Man();
} catch (Exception e) {
e.printStackTrace();
}
if (fred != null) {
System.out.println(fred.getName());
}
您必须在代码块中声明要访问它的变量。在这种特殊情况下:在“尝试”区块之外。
答案 2 :(得分:1)
Fred
仅在<{>} try
- 块中可用,因为那是你宣布他的地方。相反,在街区之外宣布他,如下:
Man fred;
try {
fred = new Man();
} catch (Exception e) {
e.printStackTrace();
}
if (fred != null) {
System.out.println(fred);
}
注意额外的if (fred != null)
;因为创建fred可能会抛出Exception
,在这种情况下fred
将是null
,并且打印他可能无效。
答案 3 :(得分:0)
正确的方法如下:
try
{
Man fred = new Man();
print(fred.getName());
}
catch (Exception exc)
{
exc.printStackTrace();
}
换句话说,您的“尝试”块应足够大,以涵盖fred
的所有后续使用。抵制诱惑,使它们变得微小和连续。而是将它们变大并嵌套。
答案 4 :(得分:-1)
请参阅以下更改:
Man Fred = null;
Try
{
Fred = new Man();
}
catch (exception e)
{
Print e
}
If(Fred != null)
{
Print Fred.getName ();
}