使用try语句声明对象

时间:2012-10-23 07:26:25

标签: java exception

try {
  Man Fred = new Man();
} catch (exception e) {
  Print e 
}

Print Fred.getName ();
弗雷德现在已超出范围。我该怎么做?

5 个答案:

答案 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 (); 
}