|
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