minimal try/catch with proper preservation of $@