Try-finally

Для оператора stmt в форме

try блок_try finally блок_finally

· Состояние определенного присваивания переменной v в начале блок_try соответствует состоянию определенного присваивания переменной v в начале операции stmt.

· Состояние определенного присваивания переменной v в начале блок_finally соответствует состоянию определенного присваивания переменной v в начале операции stmt.

· Переменная v в конечной точке операции stmt считается определенно присвоенной только при соблюдении по меньшей мере одного из следующих условий:

o переменная v является определенно присвоенной в конечной точке блок_try

o переменная v является определенно присвоенной в конечной точке блок_finally

При переключении потока управления (например, в операторе goto), которое начинается в блок_try и завершается вне его, переменная v также считается определенно присвоенной в такой ветви потока управления, если переменная v является определенно присвоенной в конечной точке блок_finally. (Это не единственная возможность — если переменная v является определенно присвоенной по другой причине при таком переключении потока управления, она все еще считается определенно присвоенной.)