|
7082 | 7082 | A \grammarterm{throw-expression} is of type \keyword{void}.
|
7083 | 7083 |
|
7084 | 7084 | \pnum
|
7085 |
| -Evaluating a \grammarterm{throw-expression} with an operand throws an |
7086 |
| -exception\iref{except.throw}; the type of the exception object is determined by removing |
7087 |
| -any top-level \grammarterm{cv-qualifier}{s} from the static type of the |
7088 |
| -operand and adjusting the type |
7089 |
| -from ``array of \tcode{T}'' or function type \tcode{T} |
7090 |
| -to ``pointer to \tcode{T}''. |
| 7085 | +A \grammarterm{throw-expression} with an operand throws an |
| 7086 | +exception\iref{except.throw}. |
| 7087 | +The array-to-pointer\iref{conv.array} and function-to-pointer\iref{conv.func} |
| 7088 | +standard conversions are performed on the operand. |
| 7089 | +The type of the exception object is determined by removing |
| 7090 | +any top-level \grammarterm{cv-qualifier}{s} from the type of the |
| 7091 | +(possibly converted) operand. |
7091 | 7092 |
|
7092 | 7093 | \pnum
|
7093 | 7094 | \indextext{exception handling!rethrow}%
|
7094 | 7095 | A
|
7095 | 7096 | \grammarterm{throw-expression}
|
7096 | 7097 | with no operand rethrows the currently handled exception\iref{except.handle}.
|
7097 |
| -The exception is reactivated with the existing exception object; |
| 7098 | +\indextext{exception handling!terminate called@\tcode{terminate} called}% |
| 7099 | +\indextext{\idxcode{terminate}!called}% |
| 7100 | +If no exception is presently being handled, |
| 7101 | +the function \tcode{std::terminate} is invoked\iref{except.terminate}. |
| 7102 | +Otherwise, the exception is reactivated with the existing exception object; |
7098 | 7103 | no new exception object is created.
|
7099 | 7104 | The exception is no longer considered to be caught.
|
7100 | 7105 | \begin{example}
|
|
7110 | 7115 | \end{codeblock}
|
7111 | 7116 | \end{example}
|
7112 | 7117 |
|
7113 |
| -\pnum |
7114 |
| -\indextext{exception handling!rethrow}% |
7115 |
| -\indextext{exception handling!terminate called@\tcode{terminate} called}% |
7116 |
| -\indextext{\idxcode{terminate}!called}% |
7117 |
| -If no exception is presently being handled, |
7118 |
| -evaluating a |
7119 |
| -\grammarterm{throw-expression} |
7120 |
| -with no operand calls |
7121 |
| -\tcode{std::\brk{}terminate()}\iref{except.terminate}. |
7122 |
| - |
7123 | 7118 | \rSec2[expr.ass]{Assignment and compound assignment operators}%
|
7124 | 7119 | \indextext{expression!assignment and compound assignment}
|
7125 | 7120 |
|
|
0 commit comments