WebMar 5, 2013 · If an exception occurs, but then the code reaches a return from the catch block, control is transferred to the finally block and the function eventually returns normally (not a throw). In your example, you have a return in the finally, and so regardless of what happens, the function will return 34, because finally has the final (if you will) word. WebApr 26, 2011 · 34. It's illegal because when you reach the Finally block, the value to return is already defined ("OK" if everything went well, "NOK" if an exception was caught). If you were able to return a different value from the Finally block, this value would always be returned, whatever the outcome of the instructions above.
.net - Return in the Finally Block... Why not? - Stack Overflow
WebAug 2, 2012 · It's perfectly safe to call return inside your using block, since a using block is just a try/finally block. In your example above after return true, the scope will get disposed and the value returned. return false, and scope.Complete () will not get called. Dispose however will be called regardless since it reside inside the finally block. WebThe finally being executed in all those case whereas in the example with no finally that would not be the case for the clean up code. Further more you can't jump (goto) into a finally block though very uncommon you can jump to the code after the catch block. You can't return from a finally block either. darrell brooks outburst
c# - Is it a good approach to call return inside using {} statement ...
WebJul 14, 2010 · Yes, Dispose will be called. It's called as soon as the execution leaves the scope of the using block, regardless of what means it took to leave the block, be it the end of execution of the block, a return statement, or an exception.. As @Noldorin correctly points out, using a using block in code gets compiled into try/finally, with Dispose being … WebThe finally block is actually executed IF we choose to CANCEL out of the Windows Error Reporting Dialog, as such: HOWEVER, if we allow the Windows Error Reporting Dialog to "complete", so we get the option to "Debug" or "Close Program", then the finally block is … WebThe finally block rewrites try block return (figuratively speaking). Just wanted to point out, that if you return something from finally, then it will be returned from the function. But if in finally there is no 'return' word - it will be returned the value from try block; bison faceplate jaws