Testing a key in a PropertyBag without raising an error

When you pass a non-existing key to the WriteProperty method of the PropertyBag object you get an error 327 “Data value named ‘namekey‘ not found”. This is more or less the same error – albeit with a different error code – that you receive when you pass an non-existing key to the Item method of a Collection object, and it seems that you are forced to set up an error handler only to avoid that the error terminates your application:

On Error Resume Nextvalue = MyPropertyBag.ReadProperty("XYZ")If Err = 327 Then     ' item not foundEnd IfOn Error Resume Next

However, in this respect PropertyBag objects are more flexible than Collection objects, because you can pass a default value as a 2nd argument, and this value is returned if no item with the specified key exists. This lets you simplify the code as follows:

value = MyPropertyBag.ReadProperty("XYZ", Empty)If IsEmpty(value) Then    ' item not foundEnd If

The previous code snippet assumes that no Empty value is stored in the PropertyBag. If this isn’t the case you can replace Empty with Null (and test it using the IsNull function) and, more in general, with any string or number that you are 100% sure that isn’t stored in the PropertyBag object.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: