java 数组索引越界异常:0

new9mtju  于 2023-01-07  发布在  Java
关注(0)|答案(2)|浏览(181)

我正在用一本书学习java。有这样一个练习,我不能正确地工作。它使用java类Double添加两个double。当我试图在Eclipse中运行这段代码时,它给了我标题中的错误。

public static void main(String[] args) {

    Double d1 = Double.valueOf(args[0]);
    Double d2 = Double.valueOf(args[1]);
    double result = d1.doubleValue() + d2.doubleValue();
    System.out.println(args[0] + "+" + args[1] + "=" + result);

}
fdx2calv

fdx2calv1#

问题

这个ArrayIndexOutOfBoundsException: 0意味着索引0不是数组args[]的有效索引,这反过来又意味着数组为空。
main()方法的这个特殊例子中,它意味着没有参数被传递到命令行上的程序。

可能的解决方案

  • 如果您从命令行运行程序,请不要忘记在命令中传递2个参数(2,因为您访问的是args[0]args[1]
  • 如果你在Eclipse中运行你的程序,你应该在运行配置中设置命令行参数。转到Run > Run configurations...,然后选择Arguments选项卡作为你的运行配置,并在 * program arguments * 区域中添加一些参数。

注意你应该处理参数不足的情况,在main方法的开头这样写:

if (args.length < 2) {
    System.err.println("Not enough arguments received.");
    return;
}

这将优雅地失败,而不是使您的程序崩溃。

mqkwyuun

mqkwyuun2#

这段代码期望在运行时得到两个参数(args数组),访问args[0]会导致java.lang.ArrayIndexOutOfBoundsException,这意味着你没有传递任何参数。

相关问题