ExplodeCaller calls obj.PropertyValue(propertyName). This method itself is improvable, as it should probably not throw an exception and check if the property can be get with a parameterless GetProperty() or other similar scenarios where a property cannot be retrieved. For example, in PropertyValue() we are not guarding against Indexers, but in general it's not wise for the Explode not to guard against exceptions for individual property gets.
Suggestion
Regardless of the reason why exception is thrown, the Explode component should have a retrieval mechanism that is Exception resistant when looping and invoking PropertyValue() for individual properties. A single non-gettable property can now stop the run of ExplodeCaller, preventing the retrieval of other retrievable properties.
Steps to reproduce:
Use explode on an object that has some indexer.
Expected behaviour:
Explode should continue running, populating non-gettable properties with nulls.
Test file(s):
Copy the following and paste in an open GH canvas:
Description:
ExplodeCaller
callsobj.PropertyValue(propertyName)
. This method itself is improvable, as it should probably not throw an exception and check if the property can be get with a parameterlessGetProperty()
or other similar scenarios where a property cannot be retrieved. For example, inPropertyValue()
we are not guarding against Indexers, but in general it's not wise for the Explode not to guard against exceptions for individual property gets.Suggestion
Regardless of the reason why exception is thrown, the Explode component should have a retrieval mechanism that is Exception resistant when looping and invoking
PropertyValue()
for individual properties. A single non-gettable property can now stop the run ofExplodeCaller
, preventing the retrieval of other retrievable properties.Steps to reproduce:
Use explode on an object that has some indexer.
Expected behaviour:
Explode should continue running, populating non-gettable properties with nulls.
Test file(s):
Copy the following and paste in an open GH canvas: