ECMA-334: 12.3.3.14 Try-finally statements
Microsoft .NET Framework, ASP.NET, Visual C# (CSharp, C Sharp, C-Sharp) Developer Training, Visual Studio
12.3.3.14 Try-finally statements
For a try statement stmt of the form:
trytry-blockfinallyfinally-block
- The definite assignment state of v at the beginning of try-block is the same as the definite assignment state of v at the beginning of stmt.
- The definite assignment state of v at the beginning of finally-block is the same as the definite assignment state of v at the beginning of stmt.
- The definite assignment state of v at the end-point of stmt is definitely assigned if (and only if) either:
- v is definitely assigned at the end-point of try-block
- v is definitely assigned at the end-point of finally-block
If a control flow transfer (such as a goto statement) is made that begins within try-block, and ends outside
of try-block, then v is also considered definitely assigned on that control flow transfer if v is definitely
assigned at the end-point of finally-block. (This is not an only if—if v is definitely assigned for another
reason on this control flow transfer, then it is still considered definitely assigned.)