/www.cppreference.com/wiki/error/exception
#! | 119 lines | 106 code | 13 blank | 0 comment | 0 complexity | 0d26d0d351a8fc5874c70e964b713a89 MD5 | raw file
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
- lang="en" dir="ltr">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>error:exception</title>
- <meta name="generator" content="DokuWiki" />
- <meta name="robots" content="index,follow" />
- <meta name="date" content="2010-11-11T14:26:07-0800" />
- <meta name="keywords" content="error,exception" />
- <link rel="search" type="application/opensearchdescription+xml" href="http://www.cppreference.com/wiki/lib/exe/opensearch.php" title="C++ Reference" />
- <link rel="start" href="../../index.html" />
- <link rel="contents" href="http://www.cppreference.com/wiki/error/exception?do=index" title="Sitemap" />
- <link rel="alternate" type="application/rss+xml" title="Recent Changes" href="http://www.cppreference.com/wiki/feed.php" />
- <link rel="alternate" type="application/rss+xml" title="Current Namespace" href="http://www.cppreference.com/wiki/feed.php?mode=list&ns=error" />
- <link rel="alternate" type="text/html" title="Plain HTML" href="http://www.cppreference.com/wiki/_export/xhtml/error/exception" />
- <link rel="alternate" type="text/plain" title="Wiki Markup" href="http://www.cppreference.com/wiki/_export/raw/error/exception" />
- <link rel="canonical" href="exception" />
- <link rel="stylesheet" media="screen" type="text/css" href="../lib/exe/css.php@t=custom1&tseed=1289693594" />
- <link rel="stylesheet" media="all" type="text/css" href="../lib/exe/css.php@s=all&t=custom1&tseed=1289693594" />
- <link rel="stylesheet" media="print" type="text/css" href="../lib/exe/css.php@s=print&t=custom1&tseed=1289693594" />
- <script type="text/javascript" ><!--//--><![CDATA[//><!--
- var NS='error';var JSINFO = {"id":"error:exception","namespace":"error"};
- //--><!]]></script>
- <script type="text/javascript" charset="utf-8" src="../lib/exe/js.php@tseed=1289693594" ></script>
- </head>
- <body>
- <div class="dokuwiki export">
- <!-- TOC START -->
- <div class="toc">
- <div class="tocheader toctoggle" id="toc__header">Table of Contents</div>
- <div id="toc__inside">
- <ul class="toc">
- <li class="clear">
- <ul class="toc">
- <li class="level2"><div class="li"><span class="li"><a href="exception#exceptions" class="toc">Exceptions</a></span></div>
- <ul class="toc">
- <li class="level3"><div class="li"><span class="li"><a href="exception#handling" class="toc">Handling</a></span></div></li>
- <li class="level3"><div class="li"><span class="li"><a href="exception#standard_exceptions" class="toc">Standard Exceptions</a></span></div></li></ul>
- </li></ul>
- </li></ul>
- </div>
- </div>
- <!-- TOC END -->
- <h2 class="sectionedit1"><a name="exceptions" id="exceptions">Exceptions</a></h2>
- <div class="level2">
- </div>
- <!-- EDIT1 SECTION "Exceptions" [1-23] -->
- <h3 class="sectionedit2"><a name="handling" id="handling">Handling</a></h3>
- <div class="level3">
- <p>
- The <code><exception></code> header provides functions and classes for exception control. One basic class is <code>exception</code>:
- </p>
- <pre class="cpp code cpp"><span class="kw2">class</span> exception
- <span class="br0">{</span>
- <span class="kw2">public</span><span class="sy4">:</span>
- exception<span class="br0">(</span><span class="br0">)</span> <span class="kw1">throw</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
- exception<span class="br0">(</span><span class="kw4">const</span> exception<span class="sy3">&</span><span class="br0">)</span> <span class="kw1">throw</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
- exception<span class="sy3">&</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> exception<span class="sy3">&</span><span class="br0">)</span> <span class="kw1">throw</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
- <span class="kw2">virtual</span> ~exception<span class="br0">(</span><span class="br0">)</span> <span class="kw1">throw</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
- <span class="kw2">virtual</span> <span class="kw4">const</span> <span class="kw4">char</span> <span class="sy2">*</span>what<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">throw</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
- <span class="br0">}</span><span class="sy4">;</span></pre>
- </div>
- <!-- EDIT2 SECTION "Handling" [24-404] -->
- <h3 class="sectionedit3"><a name="standard_exceptions" id="standard_exceptions">Standard Exceptions</a></h3>
- <div class="level3">
- <p>
- The <code><stdexcept></code> header provides a small hierarchy of exception classes that can be <a href="../keywords/throw" class="wikilink1" title="keywords:throw">thrown</a> or <a href="../keywords/catch" class="wikilink1" title="keywords:catch">caught</a>:
- </p>
- <ul>
- <li class="level1"><div class="li"> <code>exception</code></div>
- <ul>
- <li class="level2"><div class="li"> <code>logic_error</code></div>
- <ul>
- <li class="level3"><div class="li"> <code>domain_error</code></div>
- </li>
- <li class="level3"><div class="li"> <code>invalid_argument</code></div>
- </li>
- <li class="level3"><div class="li"> <code>length_error</code></div>
- </li>
- <li class="level3"><div class="li"> <code>out_of_range</code></div>
- </li>
- </ul>
- </li>
- <li class="level2"><div class="li"> <code>runtime_error</code></div>
- <ul>
- <li class="level3"><div class="li"> <code>range_error</code></div>
- </li>
- <li class="level3"><div class="li"> <code>overflow_error</code></div>
- </li>
- <li class="level3"><div class="li"> <code>underflow_error</code></div>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- <p>
- <em>Logic</em> errors are thrown if the program has internal errors that are caused by the user of a function and that, in theory, are preventable.<br/>
- <em>Runtime</em> errors are thrown if the cause is beyond the program and can't be predicted by the user of a function.
- </p>
- </div>
- <!-- EDIT3 SECTION "Standard Exceptions" [405-] --></div>
- </body>
- </html>