Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

8 lines
1.3 KiB
XML

<?xml version="1.0"?>
<clause number="12.3.3.14" title="Try-finally statements">
<paragraph>For a try statement stmt of the form: <code_example><![CDATA[
try try-block finally finally-block
]]></code_example><list><list_item> 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. </list_item><list_item> 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. </list_item><list_item> The definite assignment state of v at the end-point of stmt is definitely assigned if (and only if) either: </list_item><list><list_item> v is definitely assigned at the end-point of try-block </list_item><list_item> v is definitely assigned at the end-point of finally-block </list_item></list></list></paragraph>
<paragraph>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.) </paragraph>
</clause>