Symbian3/SDK/Source/GUID-D542B24D-5A17-516C-85B0-66A5E8A97946.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Tue, 20 Jul 2010 12:00:49 +0100
changeset 13 48780e181b38
parent 7 51a74ef9ed63
permissions -rw-r--r--
Week 28 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 1897 and Bug 1522.

<?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-D542B24D-5A17-516C-85B0-66A5E8A97946" xml:lang="en"><title>Exception
Handling</title><shortdesc>Description of the functions related to Exception handling.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>When an exception occurs, such as dividing by zero or an access violation,
what happens depends on whether the thread has an exception handler. If a
thread has no exception handler or has an exception handler which will not
handle the type of exception identified by the <xref href="GUID-7AF19D5F-E146-3BFA-9741-58B12D4E85A8.dita"><apiname>TExcType</apiname></xref> enumeration,
then the exception is passed to the Kernel for handling. The default action
is to panic the offending thread. </p>
<p>If a thread has an exception handler, then the handler is executed in the
context of the thread on which the exception is raised; control returns to
the point of exception. If a thread calls <codeph>RaiseException()</codeph> and
there is no handler for that type of exception, then a <codeph>KERN-EXEC 3</codeph> panic
is raised. </p>
<p>The following functions are involved in exception handling: </p>
<ul>
<li id="GUID-4A9F7B75-D1EF-5558-A24C-8BB7F31C12DD"><p> <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-E11E87FD-AFA4-353F-887B-EF36154E4B4E"><apiname>User::ExceptionHandler()</apiname></xref>  </p> </li>
<li id="GUID-BCC7FD2E-BEC7-5397-9E24-D9BBBDC00FBE"><p> <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-FDB3FF0D-705D-3EFE-9666-F26F7E390D54"><apiname>User::SetExceptionHandler()</apiname></xref>  </p> </li>
<li id="GUID-3C307BB1-D42D-5227-986A-4DBB235AC2FA"><p> <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-77B2CCE3-B8FB-331A-9E61-15B2040CEC70"><apiname>User::ModifyExceptionMask()</apiname></xref>  </p> </li>
<li id="GUID-A42D397F-8D73-5A9D-98BE-9F7668A0C148"><p> <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-6AB971F1-EE72-38E9-AA4A-9E0D8FACD4FE"><apiname>User::RaiseException()</apiname></xref>  </p> </li>
<li id="GUID-02647535-1F99-557D-AEC9-B3687799E2C6"><p> <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-3016380F-1101-395E-AEC8-1A1BA8DF3914"><apiname>User::IsExceptionHandled()</apiname></xref>  </p> </li>
</ul>
</conbody></concept>