diff options
| author | Craig Jennings <c@cjennings.net> | 2025-08-14 22:58:58 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-08-14 22:58:58 -0500 |
| commit | 82ba818ff456bcd6d56a06226e3f27e98fbb55c3 (patch) | |
| tree | 158cfc17b2f644a10f063cb546752cfaae12c97f /devdocs/gcc~13/exceptions.html | |
| parent | 9278ddd4ea1a8b1a4c1edaa8894516e3f48d245b (diff) | |
| download | dotemacs-82ba818ff456bcd6d56a06226e3f27e98fbb55c3.tar.gz dotemacs-82ba818ff456bcd6d56a06226e3f27e98fbb55c3.zip | |
removing all downloaded devdocs files
Diffstat (limited to 'devdocs/gcc~13/exceptions.html')
| -rw-r--r-- | devdocs/gcc~13/exceptions.html | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/devdocs/gcc~13/exceptions.html b/devdocs/gcc~13/exceptions.html deleted file mode 100644 index f95c5b07..00000000 --- a/devdocs/gcc~13/exceptions.html +++ /dev/null @@ -1,33 +0,0 @@ -<div class="section-level-extent" id="Exceptions"> <div class="nav-panel"> <p> Next: <a href="synchronization" accesskey="n" rel="next">Synchronization</a>, Previous: <a href="compatibility_005falias" accesskey="p" rel="prev"><code class="code">compatibility_alias</code></a>, Up: <a href="objective-c" accesskey="u" rel="up">GNU Objective-C Features</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div> <h1 class="section" id="Exceptions-1"><span>8.7 Exceptions<a class="copiable-link" href="#Exceptions-1"> ¶</a></span></h1> <p>GNU Objective-C provides exception support built into the language, as in the following example: </p> <div class="example smallexample"> <pre class="example-preformatted" data-language="cpp">@try { - … - @throw expr; - … -} -@catch (AnObjCClass *exc) { - … - @throw expr; - … - @throw; - … -} -@catch (AnotherClass *exc) { - … -} -@catch (id allOthers) { - … -} -@finally { - … - @throw expr; - … -}</pre> -</div> <p>The <code class="code">@throw</code> statement may appear anywhere in an Objective-C or Objective-C++ program; when used inside of a <code class="code">@catch</code> block, the <code class="code">@throw</code> may appear without an argument (as shown above), in which case the object caught by the <code class="code">@catch</code> will be rethrown. </p> <p>Note that only (pointers to) Objective-C objects may be thrown and caught using this scheme. When an object is thrown, it will be caught by the nearest <code class="code">@catch</code> clause capable of handling objects of that type, analogously to how <code class="code">catch</code> blocks work in C++ and Java. A <code class="code">@catch(id …)</code> clause (as shown above) may also be provided to catch any and all Objective-C exceptions not caught by previous <code class="code">@catch</code> clauses (if any). </p> <p>The <code class="code">@finally</code> clause, if present, will be executed upon exit from the immediately preceding <code class="code">@try … @catch</code> section. This will happen regardless of whether any exceptions are thrown, caught or rethrown inside the <code class="code">@try … @catch</code> section, analogously to the behavior of the <code class="code">finally</code> clause in Java. </p> <p>There are several caveats to using the new exception mechanism: </p> <ul class="itemize mark-bullet"> <li>The <samp class="option">-fobjc-exceptions</samp> command line option must be used when compiling Objective-C files that use exceptions. </li> -<li>With the GNU runtime, exceptions are always implemented as “native” exceptions and it is recommended that the <samp class="option">-fexceptions</samp> and <samp class="option">-shared-libgcc</samp> options are used when linking. </li> -<li>With the NeXT runtime, although currently designed to be binary compatible with <code class="code">NS_HANDLER</code>-style idioms provided by the <code class="code">NSException</code> class, the new exceptions can only be used on Mac OS X 10.3 (Panther) and later systems, due to additional functionality needed in the NeXT Objective-C runtime. </li> -<li>As mentioned above, the new exceptions do not support handling types other than Objective-C objects. Furthermore, when used from Objective-C++, the Objective-C exception model does not interoperate with C++ exceptions at this time. This means you cannot <code class="code">@throw</code> an exception from Objective-C and <code class="code">catch</code> it in C++, or vice versa (i.e., <code class="code">throw … @catch</code>). </li> -</ul> </div> <div class="nav-panel"> <p> Next: <a href="synchronization">Synchronization</a>, Previous: <a href="compatibility_005falias"><code class="code">compatibility_alias</code></a>, Up: <a href="objective-c">GNU Objective-C Features</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div><div class="_attribution"> - <p class="_attribution-p"> - © Free Software Foundation<br>Licensed under the GNU Free Documentation License, Version 1.3.<br> - <a href="https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Exceptions.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Exceptions.html</a> - </p> -</div> |
