java - 我们可以在 Try from catch 中获取变量吗?

标签 java

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

例如。

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

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

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

感谢您的浏览、评论和解答。

附: Java新手。

最佳答案

s7 变量的范围就在 try{} block 内。为了使变量 s7catch{} 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/

相关文章:

java - java中如何解耦数据和行为对象?

java - 将 JTextPane 添加到 BorderLayout.SOUTH 会导致 JScrollPane 滚动

java - 在 Java 中实现单例模式的有效方法是什么?

java - 如何知道某个类是否扩展了 JWindow 类?

java - 使用 Java 通过 Steam 登录

java - Java中如何让一个线程从另一个线程 hibernate

java - 为什么 System.getProperty ("java.io.tmpdir") 在 Mac OS X Catalina 10.15 上返回只读目录

Java 方法未按预期执行。试图理解为什么

java - 套接字 Java I/O 的计时问题

java - Android、Mandrill 和 Parse.com : Java ClassCastException: HashMap cannot be cast to a class