Нельзя говорить о "нервно курит в сторонке", пока один из параметров (который, кстати, должен доминировать: чаще отсутствие поля это исключительный случай, а не наоборот) работает в 40 раз быстрее =)
try/catch мне не нравится тем, что в строчке кода, которую я в него оберну, может содержаться совершенно другое RTE. Я стараюсь не использовать его вообще нигде. Поэтому идеологически твой вариант мне ближе, но я бы реализовал его по другому: getProperty возвращает Boolean, удалось считать ли, а сам getProperty записывает в поле считанное значение.
Т.е.

Код AS3:
if (Props.getProperty("hash.value.value")) myValue=Props.value;
Проблема с двойственностью толкования null исчезнет и исчезнет геморрой по повторному вбиванию длинного пути до хэша (первый раз для проверки, второй раз для присваивания).