break
, continue
, return
, or throw
statement. The notion that a variable is "definitely assigned after" a statement or expression really means "is definitely assigned after the statement or expression completes normally". Because a break
, continue
, return
, or throw
statement never completes normally, it vacuously satisfies this notion.
return
statement with an expression or a throw
statement, V is definitely assigned before the expression iff V is definitely assigned before the return
or throw
statement.