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

コード修正による更新

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

元のコメント:

サンプル コードでは、配列を参照する場所が 2 つあります。args[0]dataToPass[0]

この2つのうちの1つに違いありません。したがって、a) プログラムに引数を渡しておらず、args[0] が定義されていません。プログラム名だと思っていたので、これは奇妙に思えます。args[0]または、b)dataToPass[0]割り当てられていませんでした。dataToPass は長さゼロの配列であり、長さ 1 の配列ではありませんか?

于 2010-01-06T06:23:27.010 に答える
2

まあ、それは単純な例外です。すべての配列の長さを確認してください。引数にはいくつの項目がありますか? dataToPassで?デバッガーの使用を検討してください。

于 2010-01-06T06:18:12.410 に答える
2

プログラムに引数を渡していません。

于 2010-01-06T06:17:10.587 に答える