最近、C#でコーディングしていますが、テストしていると実行時に以下のエラーが発生しました。
ArgumentOutOfRangeException はハンドルされませんでした。
これは、何なんでしょうか?
ArgumentOutOfRangeException とは?
ArgumentOutOfRangeException はハンドルされませんでした。
インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。
パラメータ名: indexトラブルシューティングのヒント:
このメソッドの引数が有効な値であることを確認します。
コレクションを扱う場合、インデックスがコレクションのサイズより小さいことを確認します。
ComboBox または ListBox を含む、オーバーロードされた 2 つの引数の FindString メソッドまたは FindExactString メソッドを使用
するとき、startIndex パラメーターを確認します。この例外に関する一般的なヘルプを参照します。
どうやら、配列の中のindexの値が想定の範囲より大きくなって、不正なメモリをアクセスしてしまったようです。
このExceptionは実行時エラーなのでコンパイル時にはエラーになりません。
よって、テストしてみて初めて発覚するバグです。
JavaのArrayIndexOutOfBoundsExceptionというExceptionと同様です。
C言語でこのような現象が発生した場合は、core dumpを発生したり、途中で異常終了したりします。
C#の場合、トラブルシューティングまで表示されるので、わかりやすいです。
プログラミングの無料レッスン体験
約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp
<Codecampの特徴>
1 現役エンジニアによる指導
2オンラインでのマンツーマン形式の講義
3大手企業にも導入されている実践的なカリキュラム
↓無料体験レッスン実施中です。
コメント