Handle NullValueInNestedPathException
Returning "" is reasonable, since that is what you want to use as the default value.

Returning the special value "!invalid property!" to indicate an error might be allowable only in the following limited circumstance:


This is view-layer code, not your model, not middleware, not an API, and
You actually want that special string to appear in the UI as a placeholder, and
The placeholder text is to be presented in the normal font and color.


If any of those conditions is not applicable, then the special string is absolutely inappropriate. That is precisely what exceptions are for — exceptional cases. If you present exceptional cases as if they were legitimate data, then you end up with bugs like this one, where a person whose name is Null causes grief.