No, there is no way to do this in the .Net framework, you cannot figure out the current-exception-which-is-being-thrown in a finally clause.
See this post on my blog, for a comparison with a similar pattern in Ruby, it highlights the gaps I think exist with the IDisposable pattern.
Ayende has a trick that will allow you to detect an exception happened, however, it will not tell you which exception it was.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…