java - Try...catch block 没有定义变量

标签 java try-catch

我有一个程序,它从 args[] 数组中获取一个参数,在 main 方法中定义,但有一个备份以防未定义,以 try 的形式...catch block ,如果抛出 ArrayIndexOutOfBounds 异常,它会使用名为 getInt 的方法提示用户输入变量。但是,出于某种原因,当我尝试使用该变量时,我的编译器说找不到它。我有以下代码:

try {
    int limit = Integer.parseInt(args[0]);
}
catch(ArrayIndexOutOfBoundsException e) {
    int limit = getInt("Limit? ");
}
int[] p = getPrimes(limit);

getPrimes 是我拥有的另一种方法,它返回从 2 开始到指定数字(使用阿特金筛法)的素数数组。无论如何,当我编写 int[] p = getPrimes(limit); 并尝试编译时,它说“limit”变量未定义。请帮忙!

最佳答案

你应该在 block 外声明它:

int limit;
try {
    limit = Integer.parseInt(stuff[0]);
}
catch(ArrayIndexOutOfBoundsException e) {
    limit = getInt("Limit? ");
}
int[] p = getPrimes(limit);

关于java - Try...catch block 没有定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243545/

相关文章:

Java 8 - tz 数据库时区

java - 如何在 JavaFX 中绑定(bind)对象的子属性

java - try-catch 语句在捕获异常时不返回 try block

c# - Catch 提供的 URI 方案 'http' 无效;预期 'https' 错误

java - Android protobuf nano 文档

java - 图像低通滤波器中的 "Echo"

java - 如何在eclipse上使用java在黑莓中创建网页?

c# - 你怎么知道你是否在 try/catch block 中?

java - 使用用户输入在 Java 中尝试/捕获循环

node.js - 无法发现错误? : NodeJS/Hyperledger