<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Was bring throw() hinter einer Funktion]]></title><description><![CDATA[<p>Hi,</p>
<p>mit throw hinter einer Funktion oder Methode kann man<br />
ja festlegen, ob eine Funktion/Methode Exceptions schmeißen darf und wenn ja<br />
welche.</p>
<p>Nun habe ich eine Frage?</p>
<p>- Warum wird nicht schon zur CompileTime geprüft ob Verstöße vorliegen?</p>
<p>Ich weiß, dass man throw nicht benutzen muss und somit nicht genau festeht,<br />
ob eine Exception geworfen wird, aber offensichtliche Fehler können doch gemeldet<br />
werden.</p>
<p>Bsp:</p>
<pre><code class="language-cpp">void foo( void ) throw( char )
{
    throw( 123 ); // der Compiler kann wissen, dass es falsch ist
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/217443/was-bring-throw-hinter-einer-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 16:45:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/217443.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Jul 2008 14:20:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was bring throw() hinter einer Funktion on Mon, 07 Jul 2008 14:20:18 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>mit throw hinter einer Funktion oder Methode kann man<br />
ja festlegen, ob eine Funktion/Methode Exceptions schmeißen darf und wenn ja<br />
welche.</p>
<p>Nun habe ich eine Frage?</p>
<p>- Warum wird nicht schon zur CompileTime geprüft ob Verstöße vorliegen?</p>
<p>Ich weiß, dass man throw nicht benutzen muss und somit nicht genau festeht,<br />
ob eine Exception geworfen wird, aber offensichtliche Fehler können doch gemeldet<br />
werden.</p>
<p>Bsp:</p>
<pre><code class="language-cpp">void foo( void ) throw( char )
{
    throw( 123 ); // der Compiler kann wissen, dass es falsch ist
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1542737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542737</guid><dc:creator><![CDATA[Ulko]]></dc:creator><pubDate>Mon, 07 Jul 2008 14:20:18 GMT</pubDate></item><item><title><![CDATA[Reply to Was bring throw() hinter einer Funktion on Mon, 07 Jul 2008 14:34:50 GMT]]></title><description><![CDATA[<p>Ulko schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Ganz davon abgesehen das 123 ein gültiger char-Wert sein kann (auch wenn er standardmäßig als int interpretiert wird), gab es zu diesem Thema erst kürzlich mehrere Diskussionen.</p>
<p>Such entweder selber, oder schau dir einfach mal den folgenden <a href="http://www.gotw.ca/publications/mill22.htm" rel="nofollow">Artikel</a> an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542769</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 07 Jul 2008 14:34:50 GMT</pubDate></item><item><title><![CDATA[Reply to Was bring throw() hinter einer Funktion on Mon, 07 Jul 2008 17:31:07 GMT]]></title><description><![CDATA[<blockquote>
<p>aber offensichtliche Fehler können doch gemeldet</p>
</blockquote>
<p>Ist ja kein Fehler, ist legaler Code dessen Verhalten ziemlich genau definiert ist.</p>
<p>Der Grund warum keine Warnings und schon garkeine Fehler ausgegeben werden ist dass eine sinnvolle Analyse nahezu unmöglich wird, dadurch dass man keine Exception-Specs angeben muss, und es kaum eine Library gibt die es tut.</p>
<p>Und nochwas: es gibt zumindest einen wichtigen Compiler der Exception Specs noch nicht vollständig (sprich: so gut wie garnicht) implementiert hat, und das ist MSVC 2005 (2008 kann es AFAIK auch noch nicht - bin ich mir aber nicht sicher, müsste ich erst nochmal nachsehen). MSVC kann Exception Specs parsen und auch ein &quot;throw()&quot; verstehen und dann ein wenig besser optimieren, aber mehr schon nicht. D.h. unexpected() würde in deinem Beispiel NICHT wie vorgeschrieben aufgerufen wenn du das mit MSVC übersetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542915</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 07 Jul 2008 17:31:07 GMT</pubDate></item></channel></rss>