title: Return in the Finally Block... Why not?
body: <p>As MSDN <a href="http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&amp;l=EN-US&amp;k=k%28VB.RETURN%29;k%28SOLUTIONITEMSPROJECT%29;k%28TargetFrameworkMoniker-%22.NETFRAMEWORK,VERSION=V4.0%22%29;k%28DevLang-VB%29&amp;rd=true">mentions</a>: </p>
  
  <blockquote>
    <p>The code in a Finally block runs after
    a Return statement in a Try or Catch
    block is encountered, but before that
    Return statement executes. In this
    situation, a Return statement in the
    Finally block executes before the
    initial Return statement. This gives a
    different return value. To prevent
    this potentially confusing situation,
    avoid using Return statements in
    Finally blocks.</p>
  </blockquote>
  
  <p>As I didn't understand a lot from this note, I'll take an example (VB.NET, I think in C# is the situation is similar):</p>
  
  <pre><code>Try
      HugeOp()
      Return "OK"
  Catch
      Return "NOK"
  Finally
      Return "Finally"
  End Try
  </code></pre>
  
  <p>Now, <strong>why should be this illegal</strong> in both C# and VB.NET?</p>