I think you'd need to roll your own exception handling (`ensure`?). That might end up looking worse?