From Jason Turner

[except.pre]

Diff to HTML by rtfpessoa

tmp/tmp0yq09p8v/{from.md → to.md} RENAMED
@@ -7,26 +7,26 @@ handler will be invoked only by throwing an exception in code executed
7
  in the handler’s try block or in functions called from the handler’s try
8
  block.
9
 
10
  ``` bnf
11
  try-block:
12
- 'try' compound-statement handler-seq
13
  ```
14
 
15
  ``` bnf
16
  function-try-block:
17
- 'try' ctor-initializerₒₚₜ compound-statement handler-seq
18
  ```
19
 
20
  ``` bnf
21
  handler-seq:
22
  handler handler-seqₒₚₜ
23
  ```
24
 
25
  ``` bnf
26
  handler:
27
- 'catch' '(' exception-declaration ')' compound-statement
28
  ```
29
 
30
  ``` bnf
31
  exception-declaration:
32
  attribute-specifier-seqₒₚₜ type-specifier-seq declarator
@@ -40,12 +40,12 @@ appertains to the parameter of the catch clause [[except.handle]].
40
  A *try-block* is a *statement* [[stmt.pre]].
41
 
42
  [*Note 1*: Within this Clause “try block” is taken to mean both
43
  *try-block* and *function-try-block*. — *end note*]
44
 
45
- A `goto` or `switch` statement shall not be used to transfer control
46
- into a try block or into a handler.
47
 
48
  [*Example 1*:
49
 
50
  ``` cpp
51
  void f() {
 
7
  in the handler’s try block or in functions called from the handler’s try
8
  block.
9
 
10
  ``` bnf
11
  try-block:
12
+ try compound-statement handler-seq
13
  ```
14
 
15
  ``` bnf
16
  function-try-block:
17
+ try ctor-initializerₒₚₜ compound-statement handler-seq
18
  ```
19
 
20
  ``` bnf
21
  handler-seq:
22
  handler handler-seqₒₚₜ
23
  ```
24
 
25
  ``` bnf
26
  handler:
27
+ catch '(' exception-declaration ')' compound-statement
28
  ```
29
 
30
  ``` bnf
31
  exception-declaration:
32
  attribute-specifier-seqₒₚₜ type-specifier-seq declarator
 
40
  A *try-block* is a *statement* [[stmt.pre]].
41
 
42
  [*Note 1*: Within this Clause “try block” is taken to mean both
43
  *try-block* and *function-try-block*. — *end note*]
44
 
45
+ The *compound-statement* of a try block or of a handler is a
46
+ control-flow-limited statement [[stmt.label]].
47
 
48
  [*Example 1*:
49
 
50
  ``` cpp
51
  void f() {