I think, catching the exception and throwing it after cleaning the resources is a fair solution. User will know the result of the destroy operation and leak will never happen.