Normally it's not a good idea to put the return inside the ensure, because the code after the one generating the exception won't be executed (if there is exception, and there is code to be executed after it).