java - 如何克服 Integer.parseInt(args[0]) 的 ArrayIndexOutOfBoundException?

标签 java exception indexoutofboundsexception parseint

我在其中一个视频教程中看到了下面的代码。它执行得很好,但是当我尝试在我的系统中执行时,它编译得很好,但我收到运行时错误,

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

class Test13 
{
    public static void main(String[] args) 
    {   
        int i = Integer.parseInt(args[0]);
        System.out.println(i);
    }
}

有人可以指导我这段代码有什么问题以及如何纠正吗?

提前致谢!

最佳答案

看起来您在运行代码时没有传递任何参数。

来自Java doc for ArrayIndexOutOfBoundsException : '抛出该异常表示已使用非法索引访问了数组。索引要么为负数,要么大于或等于数组的大小。'

因此,您尝试从索引为 0 的 args 数组中提取一个值,但该数组小于此大小(在本例中为空)。

为了防止抛出异常,您可以在语句周围应用大小检查。

if(args.length>0) {
    int i = Integer.parseInt(args[0]);
    System.out.println(i);
}

关于java - 如何克服 Integer.parseInt(args[0]) 的 ArrayIndexOutOfBoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34720857/

相关文章:

java - 使用 @PrePersist 和 @PreUpdate 时,创建的日期字段在更新时变为空

java - 小型文件的音频缓存Android Studio

java - OutputSteam 是抽象的

C# - 避免获取 SocketException

Java Array Index out of Bounds 异常 with/for 循环

java - onActivityResult 返回数据 = null

Python-不希望字母或数字超出输入范围

java - truezip 的问题 - 调试时,抛出一个奇怪的异常

java - 如何在 java 中使用特定规则对给定字符串进行子字符串化

java - 递归 main 方法中的 ArrayIndexOutOfBoundsException