这里只是一个简单的问题。我们可以从catch中获取Try中声明的变量吗?
例如。
Try {
.....
String s7 = ftpfile1.getName().toString();
.....
}
catch {
System.out.println(s7);
}
我知道这不是获取字符串s7
的方法。所以,我想问是否有任何可能的方法或者我需要做什么才能捕获 s7
?有任何示例、相关帖子或答案可以分享吗?
预期结果:
可以在 catch 中获取 s7
。
感谢您的浏览、评论和解答。
附: Java新手。
最佳答案
s7
变量的范围就在 try{}
block 内。为了使变量 s7
在 catch{}
block 中可用,您需要增加 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 from catch 中获取变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22831311/