Basic exception support

Describes the operating support for exceptions.

The basic operating system support for exceptions comes from

  • the TRAP macro and its variant, TRAPD, which allow code to be run under a trap harness

  • the User::Leave() call, which terminates the current function, and returns to the trap harness, specifying an error code.

These are analogous to C++’s exception handling support (try/catch and throw).

By convention, all functions that can leave — directly or indirectly — have an L appended onto their name (and can therefore be referred to as L functions). The function invoked by a trap harness will always be an L function.