Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-EA71F52C-DB4C-500D-9051-31BEF29E171D" xml:lang="en"><title>Basic
exception support</title><shortdesc>Describes the operating support for exceptions.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The basic operating system support for exceptions comes from</p>
<ul>
<li id="GUID-E168AD4F-366A-5EAF-98F2-0C1B187E1AE0"><p>the <codeph>TRAP</codeph> macro
and its variant, <codeph>TRAPD</codeph>, which allow code to be run under
a <keyword>trap harness</keyword> </p> </li>
<li id="GUID-3B4C9F10-A89C-5979-ABC7-5106C7B9AFED"><p>the <codeph>User::Leave()</codeph> call,
which terminates the current function, and returns to the trap harness, specifying
an error code.</p> </li>
</ul>
<p>These are analogous to C++’s exception handling support (<codeph>try/catch</codeph> and <codeph>throw</codeph>). </p>
<p>By convention, all functions that can leave — directly or indirectly —
have an L appended onto their name (and can therefore be referred to as <keyword>L
functions</keyword>). The function invoked by a trap harness will always be
an L function. </p>
</conbody></concept>