<?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[Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf?]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Habe folgende Situation:</p>
<pre><code>template&lt;class KeyType, class ValueType&gt;
ValueType&amp; DictionaryAsHashTable&lt;KeyType, ValueType&gt;::get()
{
	if(currentNode != NULL)
		return currentNode-&gt;value;
	else
		cerr &lt;&lt; &quot;Fehler: Eintrag nicht vorhanden!&quot; &lt;&lt; endl;
}
</code></pre>
<p>Im else-Fall kann kein Parameter zurückgegeben werden. Man darf es auch nicht.<br />
Die Funktion darf auch nicht verändert werden.</p>
<p>In diesem Fall soll das Programm beendet werden. Welche einigermaßen saubere Lösung gibt es dafür?</p>
<p>Gruß heine</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162778/wie-programm-verlassen-wenn-kein-parameter-zurückgegeben-werden-darf</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 23:39:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162778.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Oct 2006 10:13:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 10:13:26 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Habe folgende Situation:</p>
<pre><code>template&lt;class KeyType, class ValueType&gt;
ValueType&amp; DictionaryAsHashTable&lt;KeyType, ValueType&gt;::get()
{
	if(currentNode != NULL)
		return currentNode-&gt;value;
	else
		cerr &lt;&lt; &quot;Fehler: Eintrag nicht vorhanden!&quot; &lt;&lt; endl;
}
</code></pre>
<p>Im else-Fall kann kein Parameter zurückgegeben werden. Man darf es auch nicht.<br />
Die Funktion darf auch nicht verändert werden.</p>
<p>In diesem Fall soll das Programm beendet werden. Welche einigermaßen saubere Lösung gibt es dafür?</p>
<p>Gruß heine</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159387</guid><dc:creator><![CDATA[heine789]]></dc:creator><pubDate>Mon, 23 Oct 2006 10:13:26 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 10:15:48 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>eine Exception mit throw werfen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159389</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 23 Oct 2006 10:15:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 10:54:39 GMT]]></title><description><![CDATA[<p>Exceptions haben wir noch nicht behandelt. Muss mir mal anschauen wie das geht.</p>
<p>Trotzdem danke. Muss halt vorläufig mit 'ner Warnmeldung leben! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159415</guid><dc:creator><![CDATA[heine789]]></dc:creator><pubDate>Mon, 23 Oct 2006 10:54:39 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 10:56:04 GMT]]></title><description><![CDATA[<p>heine789 schrieb:</p>
<blockquote>
<p>Exceptions haben wir noch nicht behandelt. Muss mir mal anschauen wie das geht.</p>
<p>Trotzdem danke. Muss halt vorläufig mit 'ner Warnmeldung leben! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Das ist nun garkeine gute Idee! Dann gib lieber einen Zeiger zurück und im Fehlerfall einen Nullzeiger.</p>
<p>Aber einfach ignorieren ist ganz bescheiden!</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159418</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 23 Oct 2006 10:56:04 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 12:43:54 GMT]]></title><description><![CDATA[<p>Bis du dich in Exceptions eingearbeitet hast, kannst du auch erstmal einen Dummy zurückgeben.</p>
<pre><code class="language-cpp">template&lt;class KeyType, class ValueType&gt;
ValueType&amp; DictionaryAsHashTable&lt;KeyType, ValueType&gt;::get()
{
	static ValueType dummy; // notfalls noch entsprechend initialisieren
	if(currentNode != NULL)
		return currentNode-&gt;value;
	else
	{
		cerr &lt;&lt; &quot;Fehler: Eintrag nicht vorhanden!&quot; &lt;&lt; endl;
		return dummy;
	}
}
</code></pre>
<p>Später solltest du hier natürlich Exceptions verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159520</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 23 Oct 2006 12:43:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 12:54:53 GMT]]></title><description><![CDATA[<p>na mit exit(0) natürlich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159533</guid><dc:creator><![CDATA[der schlaue]]></dc:creator><pubDate>Mon, 23 Oct 2006 12:54:53 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 13:00:11 GMT]]></title><description><![CDATA[<p>Keine gute Idee in C++, da dtors nicht mehr abgearbeitet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159539</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 23 Oct 2006 13:00:11 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 16:26:38 GMT]]></title><description><![CDATA[<p>groovemaster schrieb:</p>
<blockquote>
<p>Bis du dich in Exceptions eingearbeitet hast, kannst du auch erstmal einen Dummy zurückgeben.</p>
<pre><code class="language-cpp">template&lt;class KeyType, class ValueType&gt;
ValueType&amp; DictionaryAsHashTable&lt;KeyType, ValueType&gt;::get()
{
	static ValueType dummy; // notfalls noch entsprechend initialisieren
	if(currentNode != NULL)
		return currentNode-&gt;value;
	else
	{
		cerr &lt;&lt; &quot;Fehler: Eintrag nicht vorhanden!&quot; &lt;&lt; endl;
		return dummy;
	}
}
</code></pre>
<p>Später solltest du hier natürlich Exceptions verwenden.</p>
</blockquote>
<p>Und wie bekommt er mit das der Dummy garkein korrektes Objekt ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159751</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 23 Oct 2006 16:26:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 16:29:22 GMT]]></title><description><![CDATA[<p>Hmm, würds zwar persönlich nicht machen, aber vielleicht so:</p>
<pre><code class="language-cpp">static ValueType dummy;

...

ValueType&amp; MyFunc ()
{
    ...

    return dummy;
}

...

ValueType&amp; result = MyFunc();
if(&amp;result == &amp;dummy)
    ...
</code></pre>
<p>Sollte imho funktionieren.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159753</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 23 Oct 2006 16:29:22 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 16:43:03 GMT]]></title><description><![CDATA[<p>Hm, gibts hier eine gewisse Abneigung gegen Zeiger? Wenn er schon keine Exceptions verwenden darf/kann ist die Rückgabe eines Zeigers doch wohl recht naheliegend. Man muss Zeiger nicht auf Teufel komm raus vermeiden.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159761</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 23 Oct 2006 16:43:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 16:51:02 GMT]]></title><description><![CDATA[<p>Ach was, ne Referenz kann man mit Gewalt doch auch auf 0 verbiegen <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/1159766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159766</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 23 Oct 2006 16:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 18:34:35 GMT]]></title><description><![CDATA[<p>Wenn der Fall einen Programmierfehler darstellt und du keine Exception werfen kannst/darfst, dann nimm <strong>abort()</strong>. abort() ist genau für solche &quot;hab nen Fehler gefunden den ich nicht behandeln kann (will)&quot; Fälle gemacht. Vor Beenden des Programmes wird dabei üblicherweise noch eine Fehlermeldung angezeigt die besagt dass irgendwas böses passiert ist womit das Programm nicht umgehen kann (oder so ähnlich). Destruktoren werden auch keine mehr abgearbeitet (also kein Stack-Unwinding wie man es beim Werfen einer Exception hätte), was aber normale überhaupt kein Problem darstellt, da moderne Betriebssysteme schön hinter einem terminierten Prozess aufputzen, also alle Files/Devices/Sockets... zumachen/freigeben etc. Dass keine Destruktoren mehr laufen ist sogar oft ein Vorteil, da man in manchen Situationen vor dem &quot;jetzt häng' ich mich weg&quot; Statement (abort, throw, was auch immer) garnicht sicherstellen kann dass alle Invarianten wieder hergestellt sind. Und wenn ein Destruktor läuft während nicht alle Invarianten erfüllt sind kann das böse Folgen haben.</p>
<p>Einfach nur nix tun und einen Defaultwert zurückzugeben ist so ziemlich Das Dümmste Was Man Tun Kann (tm).</p>
<p>Ahja, auf keinen Fall bitte exit(0) verwenden - der Returncode 0 wird eigentlich immer als &quot;alles OK&quot; angesehen, wenn schon exit dann exit(1) oder irgendwas bloss nicht 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159859</guid><dc:creator><![CDATA[Plotzenhotz]]></dc:creator><pubDate>Mon, 23 Oct 2006 18:34:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 18:38:05 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Und wie bekommt er mit das der Dummy garkein korrektes Objekt ist?</p>
</blockquote>
<p>Indem er eine Exception wirft. :p<br />
Nicht so verbissen sehen, war ja nur als Übergangslösung gedacht. Und hat den Vorteil, dass wo jetzt kein Fehlerhandling gemacht werden kann, auch später kein Fehlerhandling stattfindet. Das Exceptionhandling erfogt separat von der eigentlichen Codesequenz.</p>
<p>David_pb schrieb:</p>
<blockquote>
<p>Hm, gibts hier eine gewisse Abneigung gegen Zeiger?</p>
</blockquote>
<p>Ja, gibt es.</p>
<p>heine789 schrieb:</p>
<blockquote>
<p>Die Funktion darf auch nicht verändert werden.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1159860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159860</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 23 Oct 2006 18:38:05 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Mon, 23 Oct 2006 20:27:12 GMT]]></title><description><![CDATA[<p>heine789 schrieb:</p>
<blockquote>
<p>Im else-Fall kann kein Parameter zurückgegeben werden. Man darf es auch nicht.<br />
Die Funktion darf auch nicht verändert werden.</p>
<p>In diesem Fall soll das Programm beendet werden. Welche einigermaßen saubere Lösung gibt es dafür?</p>
</blockquote>
<p>Die Vorgabe ist doch ganz klar, oder? Ich sehe zumindest keine Möglichkeit wie da Exceptions oder Dummy-Werte helfen sollen.</p>
<p>Die IMHO einzig richtige Antwort heisst im übrigen nicht wie ich zuerst fälschlicherweise geschrieben habe abort() sondern -&gt; <strong>terminate()</strong> &lt;-. Man verzeihe mir den Patzer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>terminate() tut zwar normalerweise auch nixe ausser abort() aufzurufen, aber man kann den terminate-handler auf eine eigenen Funktion verbiegen, und die Möglichkeit wollen wir dem Programm ja nicht nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159942</guid><dc:creator><![CDATA[Plotzenhotz]]></dc:creator><pubDate>Mon, 23 Oct 2006 20:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Tue, 24 Oct 2006 14:09:01 GMT]]></title><description><![CDATA[<p>Nö, Exceptions sind hier immer noch die saubere Lösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160350</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Tue, 24 Oct 2006 14:09:01 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Tue, 24 Oct 2006 15:50:00 GMT]]></title><description><![CDATA[<blockquote>
<p>Nö, Exceptions sind hier immer noch die saubere Lösung.</p>
</blockquote>
<p>Nenne mir bitte die Begründung warum deiner Meinung nach hier das Werfen einer Exception angebracht wäre, dann kann ich dir sagen wo du den Denkfehler machst.</p>
<p>BTW: wenn du eine Exception wirfst und nirgends fängst werden auch keine Destruktoren mehr abgearbeitet. Was auch gut so ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160460</guid><dc:creator><![CDATA[Plotzenhotz]]></dc:creator><pubDate>Tue, 24 Oct 2006 15:50:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Tue, 24 Oct 2006 16:01:34 GMT]]></title><description><![CDATA[<p>heine789 schrieb:</p>
<blockquote>
<p>Die Funktion darf auch nicht verändert werden.</p>
</blockquote>
<p>dann ruf diese funktion nur von einer anderen auf, die vorher 'currentnode' checkt. allein davon ist's ja abhängig ob's klappt oder nicht ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160466</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Tue, 24 Oct 2006 16:01:34 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Tue, 24 Oct 2006 16:14:50 GMT]]></title><description><![CDATA[<p>Man hat aber die Möglichkeit per Exceptionhandling darauf zu reagieren. Wer das nicht will lässt es einfach.</p>
<p>Zudem kann es durchaus sein das Klassen anderer Bibliotheken darauf angewiesen sind das ein Destruktor aufgerufen wird. Lockfiles werden wohl nicht gelöscht, fremde Tasks die man fernsteuert nicht geschlossen.</p>
<p>Mit werfen der Exception gebe ich so dem Anwender der Klasse/Funktion die Möglichkeit zu reagieren. Mit einem exit lasse ich einfach Möglichkeiten weg das Problem sauber zu lösen und riskiere das unbekannte Resourcen nicht aufgeräumt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160481</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Tue, 24 Oct 2006 16:14:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Tue, 24 Oct 2006 16:21:20 GMT]]></title><description><![CDATA[<p>Plotzenhotz schrieb:</p>
<blockquote>
<p>Nenne mir bitte die Begründung warum deiner Meinung nach hier das Werfen einer Exception angebracht wäre, dann kann ich dir sagen wo du den Denkfehler machst.</p>
</blockquote>
<p>Vielleicht ist ne Datei geöffnet? Vielleicht steht schon was im Buffer? Vielleicht geht deine config-Datei flöten?[/quote]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160488</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 24 Oct 2006 16:21:20 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Tue, 24 Oct 2006 23:16:30 GMT]]></title><description><![CDATA[<p>Ok.<br />
Vorweg ein paar Kleinigkeiten. Diverse Files (File-Handles meine ich), Speicher, sonstige Resourcen (Sockets, ...) werden normalerweise wenn ein Prozess terminiert vom OS aufgeräumt, darum braucht man sich keine Sorgen zu machen. Diverse Temp-Files bleiben dabei natürlich auf der Platte stehen wenn sie nicht in einem &quot;lösch mich wenn das Handle zugemacht wird&quot; Modus geöffnet waren. Soviel dazu. Weiters sollte man wissen dass das Stack-Unwinding nur dann passiert wenn die Exception auch irgendwo gefangen wird. Wird sie nicht gefangen wird der Prozess einfach so terminiert - macht dann auch keinen Unterschied mehr.</p>
<p>Nu zu dem Grund warum ich meine dass es in Fällen wo man eine Precondition verletzt sieht schlauer ist das Programm einfach abzubrechen, und zwar ohne Stack-Unwinding. Einfache Antwort: eben genau weil dann kein Stack-Unwinding mehr passiert, also keine Destruktoren mehr laufen.<br />
Destruktoren auszuführen hat nur dann einen Sinn wenn man davon ausgeht dass das Programm noch in einem gültigen Zustand ist. Da aber eine Precondition verletzt wurde heisst das es liegt ein Programmierfehler vor. Wo dieser Fehler genau liegt können wir nicht wissen, der kann direkt in der aufrufenden Funktion liegen, oder in einem ganz anderen Modul. Demzufolge können wir auch nicht wissen was dieser Fehler noch angerichtet hat - d.h. wir können nichtmehr garantieren dass das Programm noch in einem gültigen Zustand ist. In der Situation das Programm noch irgendwie fortzusetzen (und Destruktoren ausführen hiesse das Programm fortsetzen) kommt einem Pokerspiel gleich.</p>
<p>Daher macht es IMHO mehr Sinn das Programm einfach abzubrechen.</p>
<p>Der Denkfehler liegt also IMHO darin anzunehmen es sei sicher noch irgendwelchen Code auzuführen wenn ein unbekannter Fehler dazu geführt hat dass ein Ereignis eingetreten ist welches per definitionem nie eintreten darf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160680</guid><dc:creator><![CDATA[Plotzenhotz]]></dc:creator><pubDate>Tue, 24 Oct 2006 23:16:30 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Wed, 25 Oct 2006 06:56:10 GMT]]></title><description><![CDATA[<p>Wäre die Schlussfolgerung dann nicht, das Exceptions völlig überflüssig sind und es generell besser wäre terminate zu verwenden ? Warum verwendet das .Net Framework Exceptions , oder die std lib ?</p>
<p>Wo ist bei der Schlussfolgerung der Denkfehler ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160730</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Wed, 25 Oct 2006 06:56:10 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Wed, 25 Oct 2006 07:15:13 GMT]]></title><description><![CDATA[<p>Knuddlbaer schrieb:</p>
<blockquote>
<p>Wäre die Schlussfolgerung dann nicht, das Exceptions völlig überflüssig sind und es generell besser wäre terminate zu verwenden ?</p>
</blockquote>
<p>nö, exceptions sind schon gut, jedenfalls wenn man sofort drauf reagiert. kommt das 'catch' zu weit oben kann man u.u. den schaden nicht mehr begrenzen und muss dann das programm beenden um schlimmeres zu vermeiden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160751</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Wed, 25 Oct 2006 07:15:13 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Wed, 25 Oct 2006 07:24:20 GMT]]></title><description><![CDATA[<p>Ich bekomme gedanklich ebend in diesem Zusammenhang das geschriebene von Plotzenhotz nicht zusammen , würde es jedoch gerne verstehen.</p>
<p>Ich würde mich freuen, wenn Plotzenhotz sich hierzu noch mal äußern könnte, da man gerade bei gegensätlichen Meinungen oft viel lernen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160757</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Wed, 25 Oct 2006 07:24:20 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Wed, 25 Oct 2006 07:40:50 GMT]]></title><description><![CDATA[<p>Der OP kann keine exceptions fangen. Ergo ist das werfen einer Exception Aua.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160765</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 25 Oct 2006 07:40:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Wed, 25 Oct 2006 07:43:02 GMT]]></title><description><![CDATA[<p>Hm, kann ich nix mit anfangen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160766</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Wed, 25 Oct 2006 07:43:02 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Programm verlassen, wenn kein Parameter zurückgegeben werden darf? on Wed, 25 Oct 2006 08:50:53 GMT]]></title><description><![CDATA[<p>Plotzenhotz schrieb:</p>
<blockquote>
<p>...Weiters sollte man wissen dass das Stack-Unwinding nur dann passiert wenn die Exception auch irgendwo gefangen wird....</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Das höre ich zum ersten Mal !!! Glaube es auch und habe es gerade ausprobiert (gcc 3.4.4). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>GUUUT zu wissen - und seltsam, daß es mit bislang in meinem der &quot;Expertbücher&quot; begegnet ist. Außerdem schwer abgefahren: Ich dachte immer, Stackunwinding sei Bestandteil ein fertig compilierten Moduls. Anscheinend stellt ein Modul aber nur &quot;Informationen&quot; zur Verfügung, mit denen das gelinkte Modul das dann durchführen kann...<br />
Ich muß mir da noch ein paar Gedanken drüber machen ...</p>
<p>Einerseits finde ich Deine Ausführungen recht logisch (aus individueller Entwicklersicht), andererseits aber auch (aus &quot;Gesamtsystemsicht&quot;) für zu kurz gesprungen.<br />
- Wenn der Programmzustand &quot;vermurkst&quot; ist .... was könnte ein ausgeführter Dtor daran noch verschlimmern ?<br />
- in Serversystemen wirst Du massiv Ärger bekommen, wenn ein falscher Parameter (wenn man ehrlich ist: Welches größere Programm ist wirklich fehlerfrei ?) zu einem kompletten Abbruch/Restart führt.<br />
- terminate() ist ein absolutes &quot;no go&quot; für Systeme, die eine retry-Strategie unterstützen sollen.<br />
...</p>
<p>*grübel*</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160807</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 25 Oct 2006 08:50:53 GMT</pubDate></item></channel></rss>