I think this should be `raise $!` to raise the same exception that was caught. Unless this does it magically and I didn't realise?