|
317 | 317 | the selected constructor is odr-used\iref{basic.def.odr} and
|
318 | 318 | the destructor of \tcode{T} is potentially invoked\iref{class.dtor}.
|
319 | 319 |
|
| 320 | +\pnum |
| 321 | +\indextext{exception handling!uncaught}% |
| 322 | +An exception is considered \defnx{uncaught}{uncaught exception} |
| 323 | +after completing the initialization of the exception object |
| 324 | +until completing the activation of a handler for the exception\iref{except.handle}. |
| 325 | +\begin{note} |
| 326 | +As a consequence, an exception is considered uncaught |
| 327 | +during any stack unwinding resulting from it being thrown. |
| 328 | +\end{note} |
| 329 | + |
| 330 | +\pnum |
| 331 | +\indexlibraryglobal{uncaught_exceptions}% |
| 332 | +If an exception is rethrown\iref{expr.throw,propagation}, |
| 333 | +it is considered uncaught from the point of rethrow |
| 334 | +until the rethrown exception is caught. |
| 335 | +\begin{note} |
| 336 | +The function \tcode{std::uncaught_exceptions}\iref{uncaught.exceptions} |
| 337 | +returns the number of uncaught exceptions in the current thread. |
| 338 | +\end{note} |
| 339 | + |
320 | 340 | \pnum
|
321 | 341 | \indextext{exception handling!rethrow}%
|
322 | 342 | \indextext{rethrow|see{exception handling, rethrow}}%
|
|
331 | 351 | \indextext{exception handling!terminate called@\tcode{terminate} called}%
|
332 | 352 | \indextext{\idxcode{terminate}!called}%
|
333 | 353 | If the exception handling mechanism
|
334 |
| -handling an uncaught exception\iref{except.uncaught} |
| 354 | +handling an uncaught exception |
335 | 355 | directly invokes a function that exits via an
|
336 | 356 | exception, the function \tcode{std::terminate} is invoked\iref{except.terminate}.
|
337 | 357 | \begin{example}
|
|
1127 | 1147 | prematurely based on a determination that the unwind process
|
1128 | 1148 | will eventually cause an invocation of the function
|
1129 | 1149 | \tcode{std::terminate}.
|
1130 |
| - |
1131 |
| -\rSec2[except.uncaught]{The \tcode{std::uncaught_exceptions} function}% |
1132 |
| -\indexlibraryglobal{uncaught_exceptions} |
1133 |
| - |
1134 |
| -\pnum |
1135 |
| -An exception is considered uncaught |
1136 |
| -after completing the initialization of the exception object\iref{except.throw} |
1137 |
| -until completing the activation of a handler for the exception\iref{except.handle}. |
1138 |
| -\begin{note} |
1139 |
| -As a consequence, an exception is considered uncaught |
1140 |
| -during any stack unwinding resulting from it being thrown. |
1141 |
| -\end{note} |
1142 |
| -If an exception is rethrown\iref{expr.throw,propagation}, |
1143 |
| -it is considered uncaught from the point of rethrow |
1144 |
| -until the rethrown exception is caught. |
1145 |
| -The function \tcode{std::uncaught_exceptions}\iref{uncaught.exceptions} |
1146 |
| -returns the number of uncaught exceptions in the current thread.% |
1147 | 1150 | \indextext{exception handling|)}
|
0 commit comments