ArgumentOutOfRangeException はハンドルされませんでした。

最近、C#でコーディングしていますが、テストしていると実行時にエラーが発生しました。

スポンサーリンク

ArgumentOutOfRangeException とは?

ArgumentOutOfRangeException はハンドルされませんでした。
インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。
パラメータ名: index

トラブルシューティングのヒント:
このメソッドの引数が有効な値であることを確認します。
コレクションを扱う場合、インデックスがコレクションのサイズより小さいことを確認します。
ComboBox または ListBox を含む、オーバーロードされた 2 つの引数の FindString メソッドまたは FindExactString メソッドを使用
するとき、startIndex パラメーターを確認します。

この例外に関する一般的なヘルプを参照します。

WS000023

配列の中のindexの値が想定の範囲より大きくなって、不正なメモリをアクセスしてしまったようです。

このExceptionは実行時エラーなのでコンパイル時にはエラーになりません。
よって、テストしてみて初めて発覚するバグです。

JavaのArrayIndexOutOfBoundsExceptionというExceptionと同様です。
C言語でこのような現象が発生した場合は、core dumpを発生したり、途中で異常終了したりします。

C#の場合、トラブルシューティングまで表示されるので、わかりやすいです。

スポンサーリンク
スポンサーリンク
Translate »