我们可以在Try from catch中获得变量吗?

Tho*_*ing 2 java

这里只是一个简单的问题.我们可以获取在Try from catch中声明的变量吗?

例如.

Try {
.....
String s7 = ftpfile1.getName().toString();
.....
}
catch {
System.out.println(s7);
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是获取字符串的方法s7.所以,我想问一下,是否有任何可能的方式或我需要做什么才能获得s7捕获?分享的任何例子,相关帖子或答案?

预期结果:可以进入s7捕获.

感谢您查看,评论和解答.

ps Java新手.

vz0*_*vz0 6

s7变量的范围就在try{}块内.要使变量s7可以在catch{}块内使用,您需要增加变量的范围.你可以通过在try之外移动声明来做到这一点:

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

您还需要初始化s7为某个值,否则编译器会警告您使用未初始化的变量.这是因为异常会破坏正常的工作流,如果抛出异常,您的变量s7可能尚未初始化.