这里只是一个简单的问题。我们能否从catch中获取在Try中声明的变量?

例如。

Try {
.....
String s7 = ftpfile1.getName().toString();
.....
}
catch {
System.out.println(s7);
}


我知道这不是获取字符串s7的方法。因此,我想问问有什么可能的方法,或者我该怎么做才能把s7抓住?有任何示例,相关帖子或分享的答案吗?

预期结果:
可以在捕获中获取s7

感谢您的浏览,评论和回答。

ps Java新手。

最佳答案

s7变量的范围就在try{}块内部。为了使变量s7catch{}块内可用,您需要增加变量的scope。您可以通过将声明移到try之外来做到这一点:

String s7 = null;
try {
    .....
    s7 = ftpfile1.getName().toString();
    .....
} catch (Exception e) {
    if (s7 != null) {
      System.out.println(s7);
    } else {
      // s7 is null ...
    }
}


您还需要将s7初始化为某个值,否则编译器会警告您有关未初始化变量的使用。这是因为异常会破坏正常的工作流程,并且如果引发异常,则可能尚未初始化变量s7

关于java - 我们可以从Try中获取变量吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22831311/

10-12 15:23