<?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[C++ Exceptions und Relevanz]]></title><description><![CDATA[<p>Hi,</p>
<p>C++-Exceptions scheinen sich ja von Java-Exceptions zu unterscheiden, jedenfalls hatten wir damals mal eine Diskussion. Ich habe den Link nicht mehr, aber da schien die Quintessenz zu sein, dass man Exceptions in Java quasi ständig nutzt und in C++ wirklich nur in Ausnahmefällen, die irgendwie unabhängig von Standardfehlern seien... ich hatte es nicht ganz verstanden.</p>
<p>Aus der Quintessenz ging ja aber auch hervor, dass Exceptions in C++ sehr selten zu sein scheinen. Trotzdem wird Exception Safety oft groß geschrieben und scheint für Funktionen oder sogar Librarys oft ein wichtiger Gedanke zu sein, wenn es um das Design eben dieser Funktionen, Klassen oder Librarys geht. Doch wieso wird so viel Augenmerk darauf gelegt, wenn Exceptions ohnehin in den meisten Klassen und Methoden gar nicht genutzt werden?</p>
<p>Vielleicht kann mir da jemand einen Wink mit dem Zaunpfahl geben. Vielleicht verstehe ich hier einiges falsch, den Eindruck habe ich jedenfalls...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/334019/c-exceptions-und-relevanz</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 03:40:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/334019.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Aug 2015 20:11:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 20:11:19 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>C++-Exceptions scheinen sich ja von Java-Exceptions zu unterscheiden, jedenfalls hatten wir damals mal eine Diskussion. Ich habe den Link nicht mehr, aber da schien die Quintessenz zu sein, dass man Exceptions in Java quasi ständig nutzt und in C++ wirklich nur in Ausnahmefällen, die irgendwie unabhängig von Standardfehlern seien... ich hatte es nicht ganz verstanden.</p>
<p>Aus der Quintessenz ging ja aber auch hervor, dass Exceptions in C++ sehr selten zu sein scheinen. Trotzdem wird Exception Safety oft groß geschrieben und scheint für Funktionen oder sogar Librarys oft ein wichtiger Gedanke zu sein, wenn es um das Design eben dieser Funktionen, Klassen oder Librarys geht. Doch wieso wird so viel Augenmerk darauf gelegt, wenn Exceptions ohnehin in den meisten Klassen und Methoden gar nicht genutzt werden?</p>
<p>Vielleicht kann mir da jemand einen Wink mit dem Zaunpfahl geben. Vielleicht verstehe ich hier einiges falsch, den Eindruck habe ich jedenfalls...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464161</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sun, 16 Aug 2015 20:11:19 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 20:35:09 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Aus der Quintessenz ging ja aber auch hervor, dass Exceptions in C++ sehr selten zu sein scheinen. Trotzdem wird Exception Safety oft groß geschrieben und scheint für Funktionen oder sogar Librarys oft ein wichtiger Gedanke zu sein, wenn es um das Design eben dieser Funktionen, Klassen oder Librarys geht. Doch wieso wird so viel Augenmerk darauf gelegt, wenn Exceptions ohnehin in den meisten Klassen und Methoden gar nicht genutzt werden?</p>
</blockquote>
<p>Ich verstehe nicht, wie du von deinen Annahmen auf diese Schlussfolgerung kommst. Willst du denn nicht, dass dein Programm in Ausnahmefällen korrekt abläuft? Weil selten in Wohnungen eingebrochen wird, lässt du die Tür offen?</p>
<p>Außerdem ist deine Annahme ungenau, ich bin mir nicht sicher, ob du sie richtig meinst: Exceptions kommen schon häufig vor im Sinne, dass fast aller Code in Ausnahmefällen Exceptions wirft. Diese passieren bloß selten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464167</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 16 Aug 2015 20:35:09 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 20:38:59 GMT]]></title><description><![CDATA[<p>Also ich finde Exceptions immer ganz hilfreich wenn Usereingaben gemacht werden. Als Beispiel wenn eine Zahl zum berechnen eingegeben werden soll aber ein String mit Buchstaben eingetippt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464169</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 16 Aug 2015 20:38:59 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 20:44:03 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Exceptions kommen schon <strong>häufig</strong> vor im Sinne, dass fast aller Code in Ausnahmefällen Exceptions wirft. Diese passieren bloß <strong>selten</strong>.</p>
</blockquote>
<p>Made my day, du Freak. Was für ein ultrakrasser Satz. <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>
<p>Häufig oder selten?<br />
Und kommen Exceptions tatsächlich nur in Ausnahmefällen vor? LOL :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464171</guid><dc:creator><![CDATA[Andromeda]]></dc:creator><pubDate>Sun, 16 Aug 2015 20:44:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 20:59:48 GMT]]></title><description><![CDATA[<p>Bennisen schrieb:</p>
<blockquote>
<p>Also ich finde Exceptions immer ganz hilfreich wenn Usereingaben gemacht werden. Als Beispiel wenn eine Zahl zum berechnen eingegeben werden soll aber ein String mit Buchstaben eingetippt wird.</p>
</blockquote>
<p>Das ist jetzt eher kein Fall für Exceptions.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464174</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 16 Aug 2015 20:59:48 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 21:20:57 GMT]]></title><description><![CDATA[<p>Exceptions werden in Java doch so oft genutzt, weil sie dem Programmierer aufgezwungen werden. In C++ kann man sie IMHO komplett umgehen. Letztlich sind sie dort nicht viel mehr als setjmp/longjmp in C.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464179</guid><dc:creator><![CDATA[Andromeda]]></dc:creator><pubDate>Sun, 16 Aug 2015 21:20:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 21:22:47 GMT]]></title><description><![CDATA[<p>Ich habe da mal was geschrieben zu Exceptions: <a href="http://henkessoft.de/C++/C++%20Fortgeschrittene/C++_Fortgeschrittene.htm#2.10._exceptions" rel="nofollow">http://henkessoft.de/C++/C++ Fortgeschrittene/C++_Fortgeschrittene.htm#2.10._exceptions</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464180</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sun, 16 Aug 2015 21:22:47 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 21:26:45 GMT]]></title><description><![CDATA[<p>Könntest du eine andere Farbe für den Hintergrund verwenden? Ich hab immer noch Flecken vor den Augen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464181</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sun, 16 Aug 2015 21:26:45 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 22:19:50 GMT]]></title><description><![CDATA[<p>Andromeda schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Exceptions kommen schon <strong>häufig</strong> vor im Sinne, dass fast aller Code in Ausnahmefällen Exceptions wirft. Diese passieren bloß <strong>selten</strong>.</p>
</blockquote>
<p>Made my day, du Freak. Was für ein ultrakrasser Satz. <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>
<p>Häufig oder selten?<br />
Und kommen Exceptions tatsächlich nur in Ausnahmefällen vor? LOL :p</p>
</blockquote>
<p>Wenn man nicht zwischen der Planung und der Umsetzung von Vorgängen unterscheiden kann, dann kann der Satz verwirrend sein. Für alle anderen sollte klar sein, was gemeint ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464192</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 16 Aug 2015 22:19:50 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 22:37:33 GMT]]></title><description><![CDATA[<p>SeppJ meint, dass Exceptions praktisch stets das Mittel der Wahl sind, um tatsächliche Ausnahmefälle abzudecken. Es ist nur so dass Ausnahmen, für die Exceptions gedacht sind, eben recht selten vorkommen sollten. Sonst wären es nicht wirklich Ausnahmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464195</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 16 Aug 2015 22:37:33 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Sun, 16 Aug 2015 23:49:31 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Bennisen schrieb:</p>
<blockquote>
<p>Also ich finde Exceptions immer ganz hilfreich wenn Usereingaben gemacht werden. Als Beispiel wenn eine Zahl zum berechnen eingegeben werden soll aber ein String mit Buchstaben eingetippt wird.</p>
</blockquote>
<p>Das ist jetzt eher kein Fall für Exceptions.</p>
</blockquote>
<p>Echt nicht? Was wäre wenn du die eingegebene zahl dividieren willst und du aber einen string hast?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464200</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 16 Aug 2015 23:49:31 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 00:15:46 GMT]]></title><description><![CDATA[<p>man prüft natürlich vorher ob die eingabe des benutzers korrekt ist für die nachfolgenden operationen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464201</guid><dc:creator><![CDATA[untrusted user]]></dc:creator><pubDate>Mon, 17 Aug 2015 00:15:46 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 10:13:55 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Bennisen schrieb:</p>
<blockquote>
<p>Also ich finde Exceptions immer ganz hilfreich wenn Usereingaben gemacht werden. Als Beispiel wenn eine Zahl zum berechnen eingegeben werden soll aber ein String mit Buchstaben eingetippt wird.</p>
</blockquote>
<p>Das ist jetzt eher kein Fall für Exceptions.</p>
</blockquote>
<p>Ich denke darüber lässt sich streiten. Ich finde ein Benziner darf durchaus eine Exception werfen, wenn er mit Diesel betankt wird, und nicht nur wenn die Bremsleitung platzt.<br />
Bei Programmen, deren Hauptaufgabe jedoch daraus besteht User-Eingaben auf ihre Gültigkeit zu prüfen würde ich allerdings aus Design- wie auch aus Performancegründen eher abwägen.</p>
<p>Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464232</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Mon, 17 Aug 2015 10:13:55 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 10:26:51 GMT]]></title><description><![CDATA[<p>Finnegan schrieb:</p>
<blockquote>
<p>Ich denke darüber lässt sich streiten. Ich finde ein Benziner darf durchaus eine Exception werfen, wenn er mit Diesel betankt wird</p>
</blockquote>
<p>Das hat alle Kennzeichen eines Ortes, wo Exceptions angebracht sind.<br />
- Das Problem tritt beim Motor auf, und der Motor hat keinerlei Möglichkeit, das zu beheben.<br />
- Es gibt keine Möglichkeit, es effizient schon vorher zu erkennen (z.B. einen Dieselsensor einzubauen)<br />
- Wenn es auftritt, hat man ein grösseres Problem und kleine Verzögerungen sind einem dann völlig egal. Andererseits ist das auch nicht der erwartete Fall und man möchte beim losfahren nicht minutenlang warten, bis der Dieselsensor mit seiner Messung fertig ist.</p>
<p>Bei Nutzereingabe ist das nicht der Fall. Falscheingaben sind Normalfall und sollen genau dort abgefangen werden, wo sie produziert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464233</guid><dc:creator><![CDATA[VerWrackt]]></dc:creator><pubDate>Mon, 17 Aug 2015 10:26:51 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 10:42:43 GMT]]></title><description><![CDATA[<p>untrusted user schrieb:</p>
<blockquote>
<p>man prüft natürlich vorher ob die eingabe des benutzers korrekt ist für die nachfolgenden operationen</p>
</blockquote>
<p>Kannst du diese Meinung begründen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464234</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 17 Aug 2015 10:42:43 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 10:53:27 GMT]]></title><description><![CDATA[<p>VerWrackt schrieb:</p>
<blockquote>
<p>Finnegan schrieb:</p>
<blockquote>
<p>Ich denke darüber lässt sich streiten. Ich finde ein Benziner darf durchaus eine Exception werfen, wenn er mit Diesel betankt wird</p>
</blockquote>
<p>Das hat alle Kennzeichen eines Ortes, wo Exceptions angebracht sind.</p>
</blockquote>
<p>Ich sage ja dass man sich darüber durchaus streiten kann.</p>
<p>VerWrackt schrieb:</p>
<blockquote>
<p>- Das Problem tritt beim Motor auf, und der Motor hat keinerlei Möglichkeit, das zu beheben.<br />
- Es gibt keine Möglichkeit, es effizient schon vorher zu erkennen (z.B. einen Dieselsensor einzubauen)</p>
</blockquote>
<p>Ich persönlich würde da nicht gerade &quot;die Möglichkeit haben&quot; einen Fehler zu erkennen und ihn zu beheben als Kriterium heranziehen, sondern eher ob es sich dabei um eine definierte Funktionalität der Software handelt.<br />
Ist das &quot;beheben&quot; falscher Nutzereingaben ein &quot;Feature&quot; dann würde ich vielleicht so etwas wie eine &quot;normalize&quot;-Funktion schreiben, die aus den wirren Eingaben etwas gültiges formt, das im Weiteren nur noch via assert() geprüft wird.<br />
Schöpfte man immer alle Möglichkeiten zur Fehlerbehebung aus, so würde das Programm wahrscheinlich komplexer als notwendig und nicht selten furchtbar zu bedienen<br />
(gibt kaum etwas nervtötenderes als Software, die ständig meint zu wissen, was man eigentlich will und man erst am Schluss beim Endergebnis den produzierten Humbug vorgesetzt bekommt).</p>
<p>VerWrackt schrieb:</p>
<blockquote>
<p>- Wenn es auftritt, hat man ein grösseres Problem und kleine Verzögerungen sind einem dann völlig egal. Andererseits ist das auch nicht der erwartete Fall und man möchte beim losfahren nicht minutenlang warten, bis der Dieselsensor mit seiner Messung fertig ist.</p>
</blockquote>
<p>&quot;Erwartet&quot; und &quot;unerwartet&quot; trifft es schon eher. Fehlerhafte Nutzereingaben können durchaus auch unerwartet sein, je nach dem wie man die Software spezifiziert...</p>
<p>VerWrackt schrieb:</p>
<blockquote>
<p>Bei Nutzereingabe ist das nicht der Fall. Falscheingaben sind Normalfall und sollen genau dort abgefangen werden, wo sie produziert werden.</p>
</blockquote>
<p>... die Betankung mit einem falschen Treibstoff ist schließlich ebenfalls eine falsche Nutzereingabe. Nur eben eine unerwartete. Hat man einen Dieselsensor als &quot;Feature&quot; wird sie zu einer &quot;erwarteten&quot;.<br />
Man kann <a href="http://m.Mn" rel="nofollow">m.Mn</a>. durchaus auch bei der Zahleneigebe Buchstaben als unerwartet definieren, je nachdem was die Software können soll.<br />
Vielleicht läuft sie ja sogar an einem Mini-Terminal wo es nur einen Nummernblock gibt <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>
<p>Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464236</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Mon, 17 Aug 2015 10:53:27 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 11:17:28 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Aus der Quintessenz ging ja aber auch hervor, dass Exceptions in C++ sehr selten zu sein scheinen.</p>
</blockquote>
<p>Achtung.</p>
<p>In Java und C++ und sonstwo treten Exceptions gleich häufig auf. Die grundlegende Designprinzipien sind in allen Sprachen gleich.</p>
<p>In Java sind Exceptions aber &quot;in your face&quot;. zB checked Exceptions die dir konstant vor der Nase baumeln. Das fehlende Resourcemanagement dass dich konstant zu try/finally blöcken zwingt, etc.</p>
<p>In C++ sind Exception einfach im Hintergrund, denn Exception Safety in C++ passiert implizit (dank RAII). Eigentlich will man so gut wie nie ein try/catch in C++ schreiben, in Java ist try/catch an jeder Ecke zu treffen.</p>
<p>Das liegt auch daran dass Exception in Java flexibler sind was Translation/Propagation betrifft und man mit einer Exception mehr machen kann als in C++.</p>
<p>Aber werfen tut man gleich häufig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464237</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Mon, 17 Aug 2015 11:17:28 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 11:30:27 GMT]]></title><description><![CDATA[<p>Dann war mein Wissen da wirklich zu vage.</p>
<p>Trotzdem tu ich mich schwer abzuwägen, wann ich Ausnahmen nutze oder nicht. Ich glaube, ich hatte mich damals auch schwer getan mit:</p>
<p><a href="http://www.cplusplus.com/reference/stdexcept/invalid_argument/" rel="nofollow">http://www.cplusplus.com/reference/stdexcept/invalid_argument/</a></p>
<p>Das suggeriert ja, dass man die Exception werfen sollte, wenn das Argument nicht stimmt. Das passt ja zu obigem Beispiel der Division, wenn man einen String übergibt oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464241</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Mon, 17 Aug 2015 11:30:27 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 11:40:17 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Dann war mein Wissen da wirklich zu vage.</p>
<p>Trotzdem tu ich mich schwer abzuwägen, wann ich Ausnahmen nutze oder nicht. Ich glaube, ich hatte mich damals auch schwer getan mit:</p>
<p><a href="http://www.cplusplus.com/reference/stdexcept/invalid_argument/" rel="nofollow">http://www.cplusplus.com/reference/stdexcept/invalid_argument/</a></p>
<p>Das suggeriert ja, dass man die Exception werfen sollte, wenn das Argument nicht stimmt. Das passt ja zu obigem Beispiel der Division, wenn man einen String übergibt oder so.</p>
</blockquote>
<p>Ja, wenn du einen int willst und einen string bekommst ist es ein Fehler. Bei Exception oder nicht im Fehlerfall muss man die Anwendung der Funktion abwägen. Kann man sinnvoll verhindern dass ein String übergeben wird wenn ein int verlangt ist? wenn ja, dann exception.</p>
<p>Kommt es oft vor dass man einen string übergibt? dann lieber return value.</p>
<p>Als Beispiel:<br />
File::Open() wirft eine Exception wenn die Datei nicht geöffnet werden kann.<br />
File::Find() wirft keine Exception wenn die Datei nicht gefunden wurde.</p>
<p>Leider ist das keine exakte Wissenschaft, viel davon ist &quot;was sich richtig anfühlt&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464243</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Mon, 17 Aug 2015 11:40:17 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 11:58:53 GMT]]></title><description><![CDATA[<p>Ich würde exceptions man halt immer dann verwenden wenn man deren spezielle Funktionalität braucht?</p>
<p>Also aus mehreren geschachtelten Funktionen direkt rausspringen (das passiert ja auch &quot;selten&quot;). &quot;Ausnahme&quot; heißt ja nicht unbedingt &quot;Fehler&quot;, auch wenn sich exceptions dafür anbieten. Zum Beispiel:</p>
<pre><code>struct worker
{
    // ...
    std::atomic&lt;bool&gt; stop_flag;
    struct stop_exception : std::exception {};

    void stop_point() { if (stop_flag) throw stop_exception(); }

    void run()
    {
        for (;;) stop_point(); // Thread kann hier abgebrochen werden
    }

    void start() 
    {
        try { run(); } catch (stop_exception &amp;) {}
    }
};
</code></pre>
<p>So mach ich das (wurde mir sogar so ähnlich hier im Forum so empfohlen :D)</p>
<p>Und einen thread bricht man ja nicht notwendigerweise immer in einem Fehlerfall ab, sondern z.B. wenn der Benutzer eine weitere Verarbeitung abbrechen will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464245</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Mon, 17 Aug 2015 11:58:53 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 12:21:57 GMT]]></title><description><![CDATA[<p>happystudent schrieb:</p>
<blockquote>
<p>So mach ich das (wurde mir sogar so ähnlich hier im Forum so empfohlen :D)</p>
</blockquote>
<p>Als Teil eines Scherzes hoffe ich.</p>
<p>Sowas würde ich einem Mitarbeiter bei mir nicht durchgehen lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464247</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Mon, 17 Aug 2015 12:21:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 12:22:39 GMT]]></title><description><![CDATA[<p>Allgemein ist es verpönt Exceptions zu &quot;flow control&quot; Zwecken zu misbrauchen.</p>
<p>Bei dem speziellen Thema, also Abbruch von Worker-Threads (oder generell Abbruch von lang laufenden Berechnungen), ist es allerdings &quot;allgemein akzeptiert&quot; das über Exceptions zu machen. Siehe z.B. <code>ThreadAbortException</code> oder <code>TaskCanceledException</code> (.NET Framework).</p>
<p>Sehr praktisch sind Exceptions auch zum Abbruch von rekursiven Suchfunktionen wenn man ein Ergebnis gefunden hat (z.B. Weg aus einem Labyrinth finden). Wobei das ein Anwendungsfall ist den wohl die meisten nicht mehr akzeptieren werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464248</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 17 Aug 2015 12:22:39 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 12:27:56 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Als Teil eines Scherzes hoffe ich.</p>
</blockquote>
<p>Naja, eigentlich war ich schon der Meinung dass das ernst gemeint war. Hoffe ich zumindest weil ich jetzt schon mein Programm so aufgebaut habe (und bis jetzt gut damit fahre) <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>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Sowas würde ich einem Mitarbeiter bei mir nicht durchgehen lassen.</p>
</blockquote>
<p>Warum? Wenn man in der run-Methode sehr viele geschachtelte Unterfunktions-Aufrufe hat ist es doch extrem mühsam im Falle eines Abbruchs alles immer durchzureichen?</p>
<p>Mit einer exception hat man dagegen eine saubere Lösung und kann sich inder Implementierung auf das wesentliche konzentrieren...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464250</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Mon, 17 Aug 2015 12:27:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 13:00:51 GMT]]></title><description><![CDATA[<p>wenn man ein plugins system mit dlls baut, sollte man in c++ besser keine excpetions verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464255</guid><dc:creator><![CDATA[wauwauwaoo]]></dc:creator><pubDate>Mon, 17 Aug 2015 13:00:51 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 13:04:58 GMT]]></title><description><![CDATA[<p>Ah, OK - für Thread Beenden ist das eine häßliche Möglichkeit die man gerne aus Bequemlichkeit verwendet. Da kann es OK sein. Es spart Code und das ist es oft Wert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464257</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Mon, 17 Aug 2015 13:04:58 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Exceptions und Relevanz on Mon, 17 Aug 2015 14:11:56 GMT]]></title><description><![CDATA[<p>happystudent schrieb:</p>
<blockquote>
<p>Warum? Wenn man in der run-Methode sehr viele geschachtelte Unterfunktions-Aufrufe hat ist es doch extrem mühsam im Falle eines Abbruchs alles immer durchzureichen?</p>
</blockquote>
<p>Threads bricht man eigentlich nur ab, wenn man sie fuer spekulative Ausfuehrung braucht und sie inzwischen nicht mehr braucht. Dann frage ich sie aber ueblicherweise in der aeussersten Schleife ab und nicht so oft zwischendurch.<br />
Ansonsten sind exceptions in threads auch gefaehrlich, denn wenn man sich gerade in einer critical section befindet, wird zwar der lock_guard geschlossen, aber es koennen noch unvollendete Werte bestehen bleiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2464271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2464271</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Mon, 17 Aug 2015 14:11:56 GMT</pubDate></item></channel></rss>