From Jason Turner

[res.on.exception.handling]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpxtlfabpy/{from.md → to.md} +17 -14
tmp/tmpxtlfabpy/{from.md → to.md} RENAMED
@@ -1,23 +1,26 @@
1
  #### Restrictions on exception handling <a id="res.on.exception.handling">[[res.on.exception.handling]]</a>
2
 
3
  Any of the functions defined in the C++standard library can report a
4
- failure by throwing an exception of a type described in its paragraph.
5
- An implementation may strengthen the *exception-specification* for a
6
- non-virtual function by adding a non-throwing *noexcept-specification*.
 
7
 
8
- A function may throw an object of a type not listed in its clause if its
9
- type is derived from a type named in the clause and would be caught by
10
- an exception handler for the base type.
11
-
12
- Functions from the C standard library shall not throw exceptions [^31]
13
  except when such a function calls a program-supplied function that
14
- throws an exception.[^32]
15
 
16
  Destructor operations defined in the C++standard library shall not throw
17
  exceptions. Every destructor in the C++standard library shall behave as
18
- if it had a non-throwing exception specification. Any other functions
19
- defined in the C++standard library that do not have an
20
- *exception-specification* may throw *implementation-defined* exceptions
21
- unless otherwise specified.[^33] An implementation may strengthen this
22
- implicit *exception-specification* by adding an explicit one.[^34]
 
 
 
 
 
 
23
 
 
1
  #### Restrictions on exception handling <a id="res.on.exception.handling">[[res.on.exception.handling]]</a>
2
 
3
  Any of the functions defined in the C++standard library can report a
4
+ failure by throwing an exception of a type described in its *Throws:*
5
+ paragraph, or of a type derived from a type named in the *Throws:*
6
+ paragraph that would be caught by an exception handler for the base
7
+ type.
8
 
9
+ Functions from the C standard library shall not throw exceptions [^28]
 
 
 
 
10
  except when such a function calls a program-supplied function that
11
+ throws an exception.[^29]
12
 
13
  Destructor operations defined in the C++standard library shall not throw
14
  exceptions. Every destructor in the C++standard library shall behave as
15
+ if it had a non-throwing exception specification.
16
+
17
+ Functions defined in the C++standard library that do not have a
18
+ *Throws:* paragraph but do have a potentially-throwing exception
19
+ specification may throw *implementation-defined* exceptions. [^30]
20
+ Implementations should report errors by throwing exceptions of or
21
+ derived from the standard exception classes ([[bad.alloc]],
22
+ [[support.exception]], [[std.exceptions]]).
23
+
24
+ An implementation may strengthen the exception specification for a
25
+ non-virtual function by adding a non-throwing exception specification.
26