EXH | NOEXH (C++ only)

Category

Object code control

Pragma equivalent

None.

Purpose

Controls whether C++ exception handling is enabled in the module being compiled.

When the EXH option is in effect, you can control the generation of C++ exception handling code.

When the NOEXH option is in effect, the generation of the exception handling code is suppressed, which results in code that runs faster, but it will not be ANSI-compliant if the program uses exception handling.

Syntax

Read syntax diagramSkip visual syntax diagramEXHNOEXH

Defaults

EXH

Usage

If you compile a source file with NOEXH, active objects on the stack are not destroyed if the stack collapses in an abnormal fashion. For example, if a C++ object is thrown, or a Language Environment® exception or signal is raised, objects on the stack will not have their destructors run.

If NOEXH has been specified and the source file has try/catch blocks or throws objects, the program may not execute as expected.

In -q syntax, use -qeh when you specify this option.

IPA effects

The IPA link step issues a diagnostic message if you specify the EXH option for that step.

Predefined macros

_CPPUNWIND is predefined to 1 when the EXH option is in effect; otherwise it is undefined.