KeyNotFoundException

From Xojo Documentation

Class (inherits from RuntimeException)

You tried to access an item in a Dictionary using a key that is not in the Dictionary.

Properties
ErrorNumber Message Reason fa-lock-32.png
Methods
Stack StackFrames

Notes

You can avoid this exception by making use of the Dictionary.Lookup method to provide a default value if the key is not found or by using the Dictionary.HasKey method to check if the key exists.

Sample Code

The following For loop produces a KeyNotFoundException error when the loop runs with the counter equal to 1. The value of 1 — which is a Variant, not an Integer — has just been removed.

Var d As New Dictionary
Var i As Integer
d.Value(0) = "Clark Kent"
d.Value(1) = "Lois Lane"
d.Value(2) = "Jimmy Olsen"
d.Remove(1)
For i = 0 To d.Count - 1 // fails when i=1
ListBox1.Addrow(d.Value(i))
Next

To handle the error, add an Exception block to the end of the method, such as:

Exception err As KeyNotFoundException
MsgBox("You tried to access a nonexistent item!")

See Also

Dictionary, RuntimeException classes; Exception block.