It's difficult to explain, but this code demonstrates it:
It's because of the reused name `e` in the exception handling. Note this is NOT a problem on ColdFusion. I do not what I ought to be expecting here (although I clearly didn't write that code expecting it to have problems!)
If I change either `e` declarations to something else, the code works as expected.