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.