0

我已经编写了以下代码,但它抛出了数组索引超出范围异常

    String options = "" + args[0];

    if (options.toLowerCase().contains("failover"))
    {
        dataToPass[0]= "failover";
        callScript("Clus1toNfastfastsamehost",dataToPass);
    }

异常:exception_name = java.lang.ArrayIndexOutOfBoundsException exception_message = 数组索引超出范围:1

4

4 回答 4

3

好吧,要么您没有为 dataToPass[] 分配足够的内存,要么您没有将参数传递给程序。如果没有传递参数,那么 args,它是一个零长度数组。调试对你来说是个不错的选择。

于 2010-01-06T07:09:49.380 回答
2

您没有将参数传递给您的程序。

于 2010-01-06T06:17:10.587 回答
2

嗯,这是一个简单的例外。检查所有数组长度。args 中有多少项?在 dataToPass 中?考虑使用调试器。

于 2010-01-06T06:18:12.410 回答
2

使用代码修复更新

String options = ""
if (args.length > 0)
  options += args[0]

原评论:

在示例代码中有两个地方引用了一个数组。args[0]dataToPass[0]

应该是这两者之一。所以,a)你没有向程序传递任何参数并且 args[0] 没有定义——这对我来说似乎很奇怪,因为我认为args[0]是程序名称或 b)dataToPass[0]没有分配——dataToPass 是一个零长度数组和不是长度为 1 的数组?

于 2010-01-06T06:23:27.010 回答