It's unclear to me why you both store the exception and re-raise it.  If it's hard to explain, let me know--I can just clone this and play with it to see what fails when this is commented out.