<?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[Exception handling]]></title><description><![CDATA[<p>Hallo folgendes habe ich eben in meinem Buch gesehen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void error(string s )
{
throw runtime_error (s);
}

int main(int argc, char* argv[])
{
try
{

return 0;
}

catch(runtime_error&amp; e)
{

	cerr&lt;&lt;&quot;error 1 &quot; &lt;&lt; e.what() &lt;&lt;endl;
	system(&quot;PAUSE&quot;);
	return 1;
}

catch ( ... )
{
	cerr &lt;&lt; &quot;Unbekannte Ausnahme&quot; &lt;&lt;endl;
	system(&quot;PAUSE&quot;);
	return 2;

}

}
</code></pre>
<p>Nur weiss ich nicht wie ich jetzt z.b. einen runtime error hervorrufen kann um das ganze mal zu testen.</p>
<p>Hat wer eine Ahnung wie das gehen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/292652/exception-handling</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 18:09:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/292652.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Sep 2011 17:19:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exception handling on Wed, 14 Sep 2011 17:19:23 GMT]]></title><description><![CDATA[<p>Hallo folgendes habe ich eben in meinem Buch gesehen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void error(string s )
{
throw runtime_error (s);
}

int main(int argc, char* argv[])
{
try
{

return 0;
}

catch(runtime_error&amp; e)
{

	cerr&lt;&lt;&quot;error 1 &quot; &lt;&lt; e.what() &lt;&lt;endl;
	system(&quot;PAUSE&quot;);
	return 1;
}

catch ( ... )
{
	cerr &lt;&lt; &quot;Unbekannte Ausnahme&quot; &lt;&lt;endl;
	system(&quot;PAUSE&quot;);
	return 2;

}

}
</code></pre>
<p>Nur weiss ich nicht wie ich jetzt z.b. einen runtime error hervorrufen kann um das ganze mal zu testen.</p>
<p>Hat wer eine Ahnung wie das gehen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2119407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2119407</guid><dc:creator><![CDATA[eXe_]]></dc:creator><pubDate>Wed, 14 Sep 2011 17:19:23 GMT</pubDate></item><item><title><![CDATA[Reply to Exception handling on Wed, 14 Sep 2011 17:24:48 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Was ist denn das für ein Buch? Die Funktion error() ergibt ja mal gar keinen Sinn.<br />
Eine Exception kannst du, wie der Name sagt, mit throw werfen.</p>
<p>Ich möchte auch noch loswerden, dass es generell eine schlechte Idee ist, mit catch(...) alles andere zu fangen. Wieso? Angenommen, irgend eine unbekannte Exception fliegt. Durch die Ausgabe &quot;Unbekannte Exception&quot; hat man nur leider absolut keine Information drüber, was genau passiert ist. Fängt man hingegen nur alles bis std::exception, dann stürzt das PRogramm bei einer anderen Exception ab. Ja, genau das wollen wir auch! Denn möglicherweise liefert uns das Betriebssystem oder die Runtime Informationen über den Fehler.</p>
<p>Grüße,<br />
PI</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2119409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2119409</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 14 Sep 2011 17:24:48 GMT</pubDate></item><item><title><![CDATA[Reply to Exception handling on Wed, 14 Sep 2011 17:48:14 GMT]]></title><description><![CDATA[<p>Das Buch heisst: Einführung in die Programmierung mit C++<br />
Autor ist Bjarne Stroustrup</p>
<p>Irgendwie steht das etwas seltsam in dem Buch beschrieben das mit dem cin stand eine seite vorher ich dachte das würde nicht zu dem Beispiel gehören.</p>
<p>Wenn ich jetzt z.b. ein a eingebe dann bekomme ich auch den runtime error.<br />
Aber wofür hier noch das catch(...) ?</p>
<p>Mhhm ist irgendwie gerade etwas verwirrend für mich ...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std; 

void error(string s ) 
 { 
throw runtime_error (s); 
 } 

int main(int argc, char* argv[]) 
{

try 
{
double d=0;
cin&gt;&gt;d;

if(cin)
{

	cout&lt;&lt;&quot;k&quot;;
}

else
{
	error(&quot;fehler&quot;);
}

return 0; 
 } 

catch(runtime_error&amp; e)
{

     cerr&lt;&lt;&quot;error 1 &quot; &lt;&lt; e.what() &lt;&lt;endl; 
     system(&quot;PAUSE&quot;); 
     return 1; 
}

catch ( ... ) 
 { 
     cerr &lt;&lt; &quot;Unbekannte Ausnahme&quot; &lt;&lt;endl; 
     system(&quot;PAUSE&quot;); 
     return 2; 

 } 

 }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2119415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2119415</guid><dc:creator><![CDATA[eXe_]]></dc:creator><pubDate>Wed, 14 Sep 2011 17:48:14 GMT</pubDate></item><item><title><![CDATA[Reply to Exception handling on Wed, 14 Sep 2011 17:52:08 GMT]]></title><description><![CDATA[<p>Zum Beispiel so:</p>
<p>eXe_ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;    //string - Klasse einbinden
using namespace std;

void error(string s )
{
throw runtime_error (s);
}

int main(int argc, char* argv[])
{
try
{

error(&quot;Fehler aufgetreten&quot;); //Funktion aufrufen, in der der Fehler auftritt(geworfen wird)

return 0;
}

catch(runtime_error&amp; e)
{

	cerr&lt;&lt;&quot;error 1 &quot; &lt;&lt; e.what() &lt;&lt;endl;
	system(&quot;PAUSE&quot;);
	return 1;
}

catch ( ... )
{
	cerr &lt;&lt; &quot;Unbekannte Ausnahme&quot; &lt;&lt;endl;
	system(&quot;PAUSE&quot;);
	return 2;

}

}
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2119418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2119418</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 14 Sep 2011 17:52:08 GMT</pubDate></item><item><title><![CDATA[Reply to Exception handling on Thu, 15 Sep 2011 07:12:34 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>Was ist denn das für ein Buch? Die Funktion error() ergibt ja mal gar keinen Sinn.<br />
Eine Exception kannst du, wie der Name sagt, mit throw werfen.</p>
<p>Ich möchte auch noch loswerden, dass es generell eine schlechte Idee ist, mit catch(...) alles andere zu fangen. Wieso? Angenommen, irgend eine unbekannte Exception fliegt. Durch die Ausgabe &quot;Unbekannte Exception&quot; hat man nur leider absolut keine Information drüber, was genau passiert ist. Fängt man hingegen nur alles bis std::exception, dann stürzt das PRogramm bei einer anderen Exception ab. Ja, genau das wollen wir auch! Denn möglicherweise liefert uns das Betriebssystem oder die Runtime Informationen über den Fehler.</p>
<p>Grüße,<br />
PI</p>
</blockquote>
<p>In der letzten Dinkumware STL gibt es eine Funktion <code>_Xran</code> , die genau so aussieht wie das obige <code>error</code> . Scheint also Leute zu geben, die sich darüber Gedanken machen und sich aus irgendwelchen Gründen dafür entschieden haben. Möglicherweise war einer der Gründe, dass man, falls sich der geworfenen Exception Typ ändern soll, das nur an einer Stelle tun muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2119561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2119561</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Thu, 15 Sep 2011 07:12:34 GMT</pubDate></item><item><title><![CDATA[Reply to Exception handling on Thu, 15 Sep 2011 07:19:23 GMT]]></title><description><![CDATA[<p>Ich hab auch öftermal Funktionen die eine bestimmte Ausnahme werfen. Wieso soll das denn keinen Sinn machen? Wenn der gleiche Fehler an verschiedenen Stellen auftreten kann, dann kann man doch genau wie alles andere auch das werfen einer bestimmten Ausnahme in eine Funktion auslagern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2119564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2119564</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Thu, 15 Sep 2011 07:19:23 GMT</pubDate></item><item><title><![CDATA[Reply to Exception handling on Thu, 15 Sep 2011 10:43:30 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<p>Ich hab auch öftermal Funktionen die eine bestimmte Ausnahme werfen. Wieso soll das denn keinen Sinn machen? Wenn der gleiche Fehler an verschiedenen Stellen auftreten kann, dann kann man doch genau wie alles andere auch das werfen einer bestimmten Ausnahme in eine Funktion auslagern.</p>
</blockquote>
<p>Wer sich im Übrigen mal angeschaut hat, was der Compiler bei einem throw-Statement so für Code generiert, der ist vielleicht nicht ganz unglücklich, wenn er das außerhalb der Cache-Line halten kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2119644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2119644</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Thu, 15 Sep 2011 10:43:30 GMT</pubDate></item><item><title><![CDATA[Reply to Exception handling on Fri, 16 Sep 2011 08:14:08 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>Was ist denn das für ein Buch? Die Funktion error() ergibt ja mal gar keinen Sinn.<br />
Eine Exception kannst du, wie der Name sagt, mit throw werfen.</p>
<p>Ich möchte auch noch loswerden, dass es generell eine schlechte Idee ist, mit catch(...) alles andere zu fangen. Wieso? [...]</p>
</blockquote>
<p>Schon wieder so eine absolute<sup>TM</sup> &quot;Weisheit&quot; von Dir. Mal davon abgesehen kann man das Programm auch bei <code>chatch(...)</code> terminieren, <em>nachdem</em> man eine auf jeden Fall aussagekräftige Meldung an den Benutzer weitergegeben hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2120032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120032</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 16 Sep 2011 08:14:08 GMT</pubDate></item><item><title><![CDATA[Reply to Exception handling on Fri, 16 Sep 2011 08:18:05 GMT]]></title><description><![CDATA[<p>Nicht mal catch richtig schreiben können und mich kritisieren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>P.S.: Du weißt ganz genau, wie meine Aussagen gemeint sind. Versuch nicht, sie absichtlich falsch zu interpretieren, um mich blöd hinzustellen. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2120034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120034</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Fri, 16 Sep 2011 08:18:05 GMT</pubDate></item><item><title><![CDATA[Reply to Exception handling on Fri, 16 Sep 2011 09:14:05 GMT]]></title><description><![CDATA[<p>Das Problem ist nicht, dass Tachyon nicht weiß, wie er deine Aussagen zu verstehen hat, sondern dass Leser, die dich nicht kennen, das nicht können.<br />
Du hast genaue Vorstellungen davon, wie <code>du</code> bestimmte Probleme lösen würdest und stellst das oft so dar, als gäbe es keine Alternativen. In diesem Beispiel konstatierst du, dass das Beispiel oben so keinen Sinn macht. Du kennst doch den Anwendungsfall überhaupt nicht und stellst das sofort fest? Wenn man das Konzept Exception Handling erklären will macht das durchaus Sinn, weil man zeigt, dass man Exceptions auch anonym fangen kann, allerdings dabei jegliche Information verliert.</p>
<p>Und auf Flüchtigkeitsfehler hinzuweisen ist echt albern. Wenn jemand ohne Punkt, Komma, Rechtschreib- und Grammatikregeln drauflostippt fällt es mir schwer, einen Kommentar zu verkneifen, aber in diesem Fall ist es absolut unangebracht.<br />
Da du noch recht jung bist wirst du erst später merken, dass in einem Team Kompromiss- und Gesprächsbereitschaft eine sehr große Rollen spielen, unabhängig von den fachlichen Qualitäten. Wenn du das nicht merkst wirst du das am Verhalten deiner Arbeitskollegen dir gegenüber merken. Und wenn du das auch nicht merkst, dann... du weißt worauf ich hinaus will.</p>
<p>Sorry for OT</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2120063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120063</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 16 Sep 2011 09:14:05 GMT</pubDate></item></channel></rss>