VB のたまご

作成日: 2015/12/03, 更新日: 2015/12/03


KeyNotFoundException について

概要

  •  KeyNotFoundException は、主に、Dictionary 変数から値を取得時に、登録していないキー名を指定して値を取得しようとすることで、発生する例外エラーです。 指定するキー名が未登録の場合の処理も考慮して、実装することが解決の糸口につながるかもしれません。


スポンサーリンク


事例と対処方法

  •  以下のサンプルは、意図的に例外エラーを発生させるコードです。 実際の業務プログラムでは、このような簡単なコードではないと思いますが、例外発生させている、直接的な原因となる部分として参考になるはずです。 また、本例外エラーが発生してしまう原因となった、根本的な原因となる別の例外エラーが、さらに奥深くにいる場合があります。 (本例外エラーは間接的に影響を受けて発生してしまったもので、本当の原因となる例外エラーを食い止めることで、本例外エラーも直る場合があります。)

  •  このような組み合わせのパターンは、本例外エラーに限らず、他の例外エラー全般にも言えることですが、そんなに頻繁に出くわすものではないと思いますので、 そういう場合もあるということだけ、覚えておいていただけると解決しやすくなるのではと思います。

  •  また、記載の対処方法は、あくまでも一例です。 他の対処方法の方が、その業務プログラムにとってベストプラクティスとなる場合もありますので、検討材料の1つという程度に確認していただければと思います。

  • スポンサーリンク



  • Dictionary
  • Dim dic As New Dictionary(Of Integer, String)
    Dim s As String = dic(12)
    
    ' 例外エラー
    System.Collections.Generic.KeyNotFoundException: 指定されたキーはディレクトリ内に存在しませんでした。
       場所 System.Collections.Generic.Dictionary`2.get_Item(TKey key)
    
    ' 対処方法
    Dim dic As New Dictionary(Of Integer, String)
    If dic.ContainsKey(12) Then
        Dim s As String = dic(12)
    End If
    
  •  指定したキー名(と対応する値)が未登録だったことが原因です。 キーの存在チェックを事前チェックとして実施することで、例外エラーを回避することができます。

  •  最後までこの記事を読んでいただき、ありがとうございました。

  • スポンサーリンク