For a try statement stmt of the form: 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 (for example, 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.)