<?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[&amp;lt;stdexcept&amp;gt;]]></title><description><![CDATA[<p>Hi<br />
Ich hab mal ne Frage zu den exception klassen wie sie unten beim Link angegeben werden.</p>
<p><a href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/classstd_1_1exception.html" rel="nofollow">http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/classstd_1_1exception.html</a></p>
<p>Die frage ist eigentlich ziemlich simpel. Worin unterscheiden die sich? Ausser vom Namen. mir ist klar, dass ich die klasse logic_error bei nem logischen Error verwende und die anderen je nachdem was grad anfällt. Aber gibt es die nur zur besseren Lesbarkeit des codes oder haben die auch einen konzeptionellen Unterschied?</p>
<p>MFG<br />
chew</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164482/lt-stdexcept-gt</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 22:40:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164482.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Nov 2006 18:37:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Wed, 08 Nov 2006 18:37:56 GMT]]></title><description><![CDATA[<p>Hi<br />
Ich hab mal ne Frage zu den exception klassen wie sie unten beim Link angegeben werden.</p>
<p><a href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/classstd_1_1exception.html" rel="nofollow">http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/classstd_1_1exception.html</a></p>
<p>Die frage ist eigentlich ziemlich simpel. Worin unterscheiden die sich? Ausser vom Namen. mir ist klar, dass ich die klasse logic_error bei nem logischen Error verwende und die anderen je nachdem was grad anfällt. Aber gibt es die nur zur besseren Lesbarkeit des codes oder haben die auch einen konzeptionellen Unterschied?</p>
<p>MFG<br />
chew</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171359</guid><dc:creator><![CDATA[chewbo]]></dc:creator><pubDate>Wed, 08 Nov 2006 18:37:56 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Wed, 08 Nov 2006 18:40:13 GMT]]></title><description><![CDATA[<p>chewbo schrieb:</p>
<blockquote>
<p>Aber gibt es die nur zur besseren Lesbarkeit des codes oder haben die auch einen konzeptionellen Unterschied?</p>
</blockquote>
<p>IMHO ist das der Grund (bessere Lesbarkeit). Die sind ja alle abgeleitet. Die 'Funktionalität' (id est: Fehlerbeschreibung-String) ist also in der Basisklasse implementiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171362</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 08 Nov 2006 18:40:13 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Wed, 08 Nov 2006 19:56:20 GMT]]></title><description><![CDATA[<p>Naja, das mit der besseren Lesbarkeit ist ja Unsinnig. Es hat schon einen Sinn, das es mehrere Typen von Exceptions gibt. Man will damit erreichen, das man auf verschiedene FehlerTYPEN auch entsprechend reagieren kann. Sagen wir mal eine Funktion wirft Exceptions. Wie soll man auf unterschiedliche Fehler reagieren können, wenn es nur einen Exceptiontyp geben würde? Schwierig, oder?</p>
<pre><code class="language-cpp">try
{
    foo(m);
}
catch(exception &amp;e)
{
   cout &lt;&lt; &quot;ehm, keine Ahnung was jetzt wirklich schief lief.&quot; &lt;&lt; endl;
}
</code></pre>
<p>Aha? Um was handelt es sich denn jetzt? Ist jetzt in foo() Speicher reserviert worden der gescheitert ist? Oder ist mein übergebener Wert von m ungültig? Oder warum ist foo jetzt schief gegeangen?</p>
<p>Das nachfolgende ist doch schon besser, oder?</p>
<pre><code class="language-cpp">try
{
    foo(m);
}
catch(bad_alloc &amp;e1)
{
    cout &lt;&lt; &quot;Verdammt, Sie haben nicht genug RAM!!!&quot; &lt;&lt; endl;
    foo_reset(); // mal alle Container löschen
    foo(m);
}
catch(invalid_argument &amp;e2)
{
     foo(321); // m scheint foo nicht gut zu bekommen, aber 321 ist immer richtig. :)
}
</code></pre>
<p>Also, der Sinn ist auch, das ich je nach Exceptiontyp auch verschieden reagieren kann. Es ist auch nicht immer so, das ich nur eine Fehlermeldung in einem catch-Block ausgeben muß. Ich kann ja bei einer exception auch einen alternativen Programmverlauf anschlagen, oder einen neuen Versuch mit anderen Parametern versuchen oder eine ganz andere Funktion aufrufen. Das geht aber nur, wenn ich den Ausnahmefall typisieren kann.</p>
<p>Bessere lesbarkeit... tsstsssss. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171417</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 08 Nov 2006 19:56:20 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Wed, 08 Nov 2006 19:54:51 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Wie soll man auf unterschiedliche Fehler reagieren können, wenn es nur einen Exceptiontyp geben würde? Schwierig, oder?</p>
</blockquote>
<p>Umpf Jo hast Recht, vergessen zu erwähnen...<br />
Aber schwierig ist das ja trotzdem nicht...Man kann schließlich einfach mit einem bestimmten Wert (gespeichert über ein Klassenelement) die Fehlersituation signalisieren <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/1171424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171424</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 08 Nov 2006 19:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Thu, 09 Nov 2006 09:33:04 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Aber schwierig ist das ja trotzdem nicht...Man kann schließlich einfach mit einem bestimmten Wert (gespeichert über ein Klassenelement) die Fehlersituation signalisieren <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>
</blockquote>
<p>Das wird dann aber unübersichtlich. außerdem werden exceptions dann nicht automatisch weitergeworfen wenn du sie nicht behandelst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171594</guid><dc:creator><![CDATA[asdasdasd]]></dc:creator><pubDate>Thu, 09 Nov 2006 09:33:04 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Thu, 09 Nov 2006 09:41:25 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Artchi schrieb:</p>
<blockquote>
<p>Wie soll man auf unterschiedliche Fehler reagieren können, wenn es nur einen Exceptiontyp geben würde? Schwierig, oder?</p>
</blockquote>
<p>Umpf Jo hast Recht, vergessen zu erwähnen...<br />
Aber schwierig ist das ja trotzdem nicht...Man kann schließlich einfach mit einem bestimmten Wert (gespeichert über ein Klassenelement) die Fehlersituation signalisieren <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>
</blockquote>
<p>... und Du kannst nicht (oder nur sehr umständlich und wartungsaufwendig) &quot;Gruppieren&quot;.<br />
Es gibt halt Situationen, in denen Du Dich nur dafür interessierst, daß ein logical_error geflogen ist, während in anderen zwischen logical_DB_error und logical_Param_error unterschieden werden muß.<br />
Per Vererbung bekommst Du das &quot;geschenkt&quot;....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171597</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 09 Nov 2006 09:41:25 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Thu, 09 Nov 2006 13:02:56 GMT]]></title><description><![CDATA[<p>den fehlertyp kann man doch aus dem string ermitteln den what() zurückgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171705</guid><dc:creator><![CDATA[nichtvererber]]></dc:creator><pubDate>Thu, 09 Nov 2006 13:02:56 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Thu, 09 Nov 2006 13:08:32 GMT]]></title><description><![CDATA[<p>Wobei jedoch nicht festgelegt ist, WAS in diesem Fehlerstring stehen muß (dagegen kannst du am jeweiligen Exception-Typ schonmal einstufen, was schief gelaufen sein könnte).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171707</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 09 Nov 2006 13:08:32 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Thu, 09 Nov 2006 13:10:51 GMT]]></title><description><![CDATA[<p>nichtvererber schrieb:</p>
<blockquote>
<p>den fehlertyp kann man doch aus dem string ermitteln den what() zurückgibt.</p>
</blockquote>
<p>Frickler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171708</guid><dc:creator><![CDATA[hahah]]></dc:creator><pubDate>Thu, 09 Nov 2006 13:10:51 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Thu, 09 Nov 2006 14:43:51 GMT]]></title><description><![CDATA[<p>Ja also, anscheinend habt Ihr meinen Post nicht richtig gelesen (zum mindestens einige)...:<br />
Ich bin doch gar nicht der Meinung, das Exception-Classes 'schlecht' sind, bzw. eine Lösung<br />
durch 'Signalwerte' (-&gt; Flags) besser wäre... . Es ging mir lediglich darum, zu zeigen, dass<br />
es auch eine andere Möglichkeit gibt (&quot;auf unterschiedliche Fehler [zu] reagieren&quot;); habe also<br />
eigentlich nur Stellung dazu genommen <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>
<p>Artchi schrieb:</p>
<blockquote>
<p>[...]Wie soll man auf unterschiedliche Fehler reagieren können, wenn es nur einen Exceptiontyp geben würde?[...]</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1171724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171724</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 09 Nov 2006 14:43:51 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Thu, 09 Nov 2006 15:28:05 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>...<br />
Ich bin doch gar nicht der Meinung, das Exception-Classes 'schlecht' sind, bzw. eine Lösung<br />
durch 'Signalwerte' (-&gt; Flags) besser wäre... ....</p>
</blockquote>
<p>Ja, deswegen ist es auch kein persönliches Widersprechen, wenn wir hier gleich die Nachteile dieser Vorgehensweise aufzeigen. <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>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171753</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 09 Nov 2006 15:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;stdexcept&amp;gt; on Thu, 09 Nov 2006 15:33:08 GMT]]></title><description><![CDATA[<p>K, k <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/1171764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171764</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 09 Nov 2006 15:33:08 GMT</pubDate></item></channel></rss>