<?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[throw]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich muss für die Schule einen Vortrag über try, catch und throw halten, habe aber keine Ahnung wie das throw eigentlich funktioniert oder wann es benutzt werden sollte.</p>
<p>Wie try und catch geht weiß ich aber mit dem throw komme ich nicht so richtig klar.<br />
Ich würde mich auch über ein, zwei sinnvolle Anwendungsbeispiele freuen, denn so wie ich das bisher verstanden habe ist throw sehr sinnlos da man es doch einfacher mit anderen Sachen machen kann.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175421/throw</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 14:40:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175421.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Mar 2007 11:50:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to throw on Sat, 10 Mar 2007 11:50:13 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich muss für die Schule einen Vortrag über try, catch und throw halten, habe aber keine Ahnung wie das throw eigentlich funktioniert oder wann es benutzt werden sollte.</p>
<p>Wie try und catch geht weiß ich aber mit dem throw komme ich nicht so richtig klar.<br />
Ich würde mich auch über ein, zwei sinnvolle Anwendungsbeispiele freuen, denn so wie ich das bisher verstanden habe ist throw sehr sinnlos da man es doch einfacher mit anderen Sachen machen kann.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242778</guid><dc:creator><![CDATA[&#x2F;&#x2F; Kommentar]]></dc:creator><pubDate>Sat, 10 Mar 2007 11:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to throw on Sat, 10 Mar 2007 12:02:25 GMT]]></title><description><![CDATA[<p>Ein Beispiel</p>
<pre><code class="language-cpp">class parser_error
    :   public std::logic_error
    {
    public:
        explicit parser_error( const std::string&amp; error )
        :   logic_error( error )
        {}
    };

//..
void Parser::parse_totals_formula( const std::string&amp; str, bool summarized )
throw( parser_error )
// Spezifikation, ob was geworfen wird, steht in der Schnittstelle damit Benutzer der Klasse wissen
// &quot;Oh, hier muss ich ein try-Block mit dem entsprechenden catch() drum machen.
{
//...
    if( !info.full )
    {
        std::stringstream error;
        error &lt;&lt; &quot;Parser error at: &quot; &lt;&lt; info.stop &lt;&lt; std::endl;
        throw( parser_error( error.str() ) );     // Hier wird geworfen
    }
//...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1242784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242784</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Sat, 10 Mar 2007 12:02:25 GMT</pubDate></item><item><title><![CDATA[Reply to throw on Sat, 10 Mar 2007 13:44:10 GMT]]></title><description><![CDATA[<p>Danke für das Beispiel, aber so ganz klar ist mir immer noch nicht wie throw jetzt eigentlich funktioniert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242854</guid><dc:creator><![CDATA[&#x2F;&#x2F; Kommentar]]></dc:creator><pubDate>Sat, 10 Mar 2007 13:44:10 GMT</pubDate></item><item><title><![CDATA[Reply to throw on Sat, 10 Mar 2007 13:57:06 GMT]]></title><description><![CDATA[<p>Im Magazin (unten im Forum) gibt es einen Artikel über Exception Handling in C++. Sollte dir bestimmt weiterhelfen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242858</guid><dc:creator><![CDATA[nep]]></dc:creator><pubDate>Sat, 10 Mar 2007 13:57:06 GMT</pubDate></item><item><title><![CDATA[Reply to throw on Mon, 12 Mar 2007 01:34:37 GMT]]></title><description><![CDATA[<p>throw &quot;wirft&quot; das, was irgendwo (hoffentlich) in einem catch-block &quot;gefangen&quot; wird, sonst wird das program mit einem &quot;unhandled exception&quot; beendet<br />
also da, wo man einen fehler feststellt, kann man throw dazu benutzen, es mitzuteilen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243718</guid><dc:creator><![CDATA[chrigi]]></dc:creator><pubDate>Mon, 12 Mar 2007 01:34:37 GMT</pubDate></item><item><title><![CDATA[Reply to throw on Mon, 12 Mar 2007 02:51:38 GMT]]></title><description><![CDATA[<p>// Kommentar schrieb:</p>
<blockquote>
<p>Danke für das Beispiel, aber so ganz klar ist mir immer noch nicht wie throw jetzt eigentlich funktioniert</p>
</blockquote>
<p>Das dachte ich mir schon. Nehmen wir den Klassiker.</p>
<pre><code class="language-cpp">float divide(float divident, float divisor) {
    if (divisor == 0.0f) {
        throw divide_by_zero_exception();
    } else {
        return divident / divisor;
    }
}

int main() {
    float qoutient = 0.0f;
    try {
        quotient = divide(4.0f, 0.0f);
        cout &lt;&lt; &quot;Ergebniss: &quot; &lt;&lt; qoutient &lt;&lt; endl;
        return 0;
    } catch (divide_by_zero e) {
        cout &lt;&lt; &quot;Fehler! Division durch Null&quot; &lt;&lt; endl;
        return 1;
    }
}
</code></pre>
<p>Erklaerung: Die Funktion divide() wirft, wenn der Divisor = 0 ist, mit &quot;throw&quot; eine Ausnahme die &quot;divide_by_zero&quot; heisst. Der Aufrufer, in diesem Fall die Funktion &quot;main&quot;, versucht (mit try) durch Null zu dividieren. Da &quot;divide&quot; es nicht kann, wirft es eine Ausnahme. &quot;main&quot; wiederrum faengt (mit catch) diese Ausnahme und reagiert darauf (der Block nach catch). Wenn der Divisor nicht 0 ist, dann wird keine Ausnahme geworfen, sodass der catch-Block niemals betreten und der try-Block vollstaendig ausgefuehrt wird (es wird also das Ergebnis angezeigt und das Programm beendet).</p>
<p>Ich hoffe meine Erklaerung hilft ein wenig weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243728</guid><dc:creator><![CDATA[Apollon]]></dc:creator><pubDate>Mon, 12 Mar 2007 02:51:38 GMT</pubDate></item><item><title><![CDATA[Reply to throw on Mon, 12 Mar 2007 20:14:47 GMT]]></title><description><![CDATA[<p>Der Klassiker der &quot;falschen Funktionen&quot; oder wie? *autsch* *autsch* *autsch* *autsch* *autsch*.</p>
<pre><code class="language-cpp">divide(FLT_MAX, FLT_MIN); // big badaboom
</code></pre>
<p>Machs mit nem Integer, und ich bin's zufrieden.<br />
Bzw. erklär nicht einem Anfänger was mit einem Beispiel wo du nen float mit == vergleichst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244309</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 12 Mar 2007 20:14:47 GMT</pubDate></item></channel></rss>