ECMA-334: 12.3.3.15 Try-catch-finally statements

Microsoft .NET Framework, ASP.NET, Visual C# (CSharp, C Sharp, C-Sharp) Developer Training, Visual Studio


Jump to: navigation, search
C# Language Specification
© 2006 ECMA International

12.3.3.15 Try-catch-finally statements

Definite assignment analysis for a try-catch-finally statement of the form:

try try-block
catch () catch-block-1
catch () catch-block-n
finally finally-block

is done as if the statement were a try-finally statement enclosing a try-catch statement:

try
{
try try-block
catch () catch-block-1
catch () catch-block-n
}
finally finally-block

[Example: The following example demonstrates how the different blocks of a try statement (§15.10) affect definite assignment.

class A
{
  static void F()
  {
    int i, j;
    try
    {
      goto LABEL;
      // neither i nor j definitely assigned
      i = 1;
      // i definitely assigned
    }
    catch
    {
      // neither i nor j definitely assigned
      i = 3;
      // i definitely assigned
    }
    finally
    {
      // neither i nor j definitely assigned
      j = 5;
      // j definitely assigned
    }
    // i and j definitely assigned
    LABEL:;
    // j definitely assigned
    }
}

end example]


Today's Deals: Electronics

Personal tools