Declarative functionality

True. It's a bit of a naughty hack but it works for catching exceptions with meaningful names and it's - by definition - exceptional behaviour anyway :-)