<?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[Boost.Exception : Nicht fangbare Exception?]]></title><description><![CDATA[<p>Hoi <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>Habe hier ein doofes Problem. Erstmal der Code:</p>
<pre><code class="language-cpp">try
{
  auto proc = getProcessByName(&quot;kcalc&quot;);
  if(!proc)
  {
    cout &lt;&lt; &quot;KCalc is not running !&quot; &lt;&lt; endl;
    return -1;
  }

  Debugger debugger(*proc);
  debugger.attach();
}
catch(EthonError const&amp; e)
{
  cout &lt;&lt; &quot;Exception occured in &quot; &lt;&lt; *boost::get_error_info&lt;ErrorFunction&gt;(e) &lt;&lt; endl;
  cout &lt;&lt; &quot;Description: &quot; &lt;&lt; *boost::get_error_info&lt;ErrorString&gt;(e) &lt;&lt; endl;

  std::error_code const * const errorCode= boost::get_error_info&lt;ErrorCode&gt;(e);
  if(errorCode)
  {
    cout &lt;&lt; &quot;Errorcode: &quot; &lt;&lt; *errorCode &lt;&lt; endl;
  }
}
catch(...)
{
  cout &lt;&lt; &quot;Unexpected Error!\n&quot; &lt;&lt; endl;
}
</code></pre>
<p>Ja, hier werden überwiegend &quot;meine&quot; Klassen verwendet.<br />
Sollte allerdings vom Prinzip her keinen Unterschied machen.<br />
Ansonsten, hier wäre der Code: <a href="http://code.google.com/p/ethonmem/source/browse/#svn%2Ftrunk" rel="nofollow">http://code.google.com/p/ethonmem/source/browse/#svn%2Ftrunk</a></p>
<p>Trotzdem bekomme ich bei der Debug-Version immer diesen Output:</p>
<blockquote>
<p>terminate called after throwing an instance of 'boost::exception_detail::clone_impl<a href="Ethon::EthonError" rel="nofollow">Ethon::EthonError</a>'<br />
what(): std::exception<br />
Aborted</p>
</blockquote>
<p>Die Exception fliegt, soweit ich per Breakpoints nachvollziehen konnte, bei Debugger::attach. Diese Funktion läuft im selben Thread und macht nichts außer eine Systemfunktion aufzurufen und bei Fehler eine Exception vom Typ EthonError (erbt virtuell von boost::exception und std::exception) zu werfen. Die sollte doch auf jeden Fall gefangen werden?</p>
<p>Kann mir das bitte jemand erklären? Danke! <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="🙂"
    /><br />
Grüße,<br />
Ethon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/281790/boost-exception-nicht-fangbare-exception</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 12:19:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/281790.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Feb 2011 22:26:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost.Exception : Nicht fangbare Exception? on Mon, 07 Feb 2011 22:26:11 GMT]]></title><description><![CDATA[<p>Hoi <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>Habe hier ein doofes Problem. Erstmal der Code:</p>
<pre><code class="language-cpp">try
{
  auto proc = getProcessByName(&quot;kcalc&quot;);
  if(!proc)
  {
    cout &lt;&lt; &quot;KCalc is not running !&quot; &lt;&lt; endl;
    return -1;
  }

  Debugger debugger(*proc);
  debugger.attach();
}
catch(EthonError const&amp; e)
{
  cout &lt;&lt; &quot;Exception occured in &quot; &lt;&lt; *boost::get_error_info&lt;ErrorFunction&gt;(e) &lt;&lt; endl;
  cout &lt;&lt; &quot;Description: &quot; &lt;&lt; *boost::get_error_info&lt;ErrorString&gt;(e) &lt;&lt; endl;

  std::error_code const * const errorCode= boost::get_error_info&lt;ErrorCode&gt;(e);
  if(errorCode)
  {
    cout &lt;&lt; &quot;Errorcode: &quot; &lt;&lt; *errorCode &lt;&lt; endl;
  }
}
catch(...)
{
  cout &lt;&lt; &quot;Unexpected Error!\n&quot; &lt;&lt; endl;
}
</code></pre>
<p>Ja, hier werden überwiegend &quot;meine&quot; Klassen verwendet.<br />
Sollte allerdings vom Prinzip her keinen Unterschied machen.<br />
Ansonsten, hier wäre der Code: <a href="http://code.google.com/p/ethonmem/source/browse/#svn%2Ftrunk" rel="nofollow">http://code.google.com/p/ethonmem/source/browse/#svn%2Ftrunk</a></p>
<p>Trotzdem bekomme ich bei der Debug-Version immer diesen Output:</p>
<blockquote>
<p>terminate called after throwing an instance of 'boost::exception_detail::clone_impl<a href="Ethon::EthonError" rel="nofollow">Ethon::EthonError</a>'<br />
what(): std::exception<br />
Aborted</p>
</blockquote>
<p>Die Exception fliegt, soweit ich per Breakpoints nachvollziehen konnte, bei Debugger::attach. Diese Funktion läuft im selben Thread und macht nichts außer eine Systemfunktion aufzurufen und bei Fehler eine Exception vom Typ EthonError (erbt virtuell von boost::exception und std::exception) zu werfen. Die sollte doch auf jeden Fall gefangen werden?</p>
<p>Kann mir das bitte jemand erklären? Danke! <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="🙂"
    /><br />
Grüße,<br />
Ethon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018026</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Mon, 07 Feb 2011 22:26:11 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Exception : Nicht fangbare Exception? on Mon, 07 Feb 2011 22:58:05 GMT]]></title><description><![CDATA[<p>Evtl mal nen Project Rebuild?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018033</guid><dc:creator><![CDATA[fdfdg]]></dc:creator><pubDate>Mon, 07 Feb 2011 22:58:05 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Exception : Nicht fangbare Exception? on Tue, 08 Feb 2011 08:18:42 GMT]]></title><description><![CDATA[<p>Hi.</p>
<p>Schon viele Male geschehen, bringt nichts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>Grüße,<br />
Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018099</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 08 Feb 2011 08:18:42 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Exception : Nicht fangbare Exception? on Tue, 08 Feb 2011 08:41:30 GMT]]></title><description><![CDATA[<p>Hats du mal tiefer rein debuggt? Wird da evtl. irgendwo eine zweite Exception geworfen, während schon eine aktiv ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018112</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 08 Feb 2011 08:41:30 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Exception : Nicht fangbare Exception? on Tue, 08 Feb 2011 12:19:30 GMT]]></title><description><![CDATA[<p>Nicht debuggt, aber während dem Duschen hab ich über die Sache nachgedacht ... der Destruktor hat gleich noch eine Exception nachgeworfen. Da lag der Fehler. <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>Etwas Offtopic, aber kanns sein dass eine Dusche besser ist als jeder Debugger? Ich finde die Lösungen für Probleme am Besten beim Duschen <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/2018204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018204</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 08 Feb 2011 12:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Exception : Nicht fangbare Exception? on Tue, 08 Feb 2011 12:26:08 GMT]]></title><description><![CDATA[<p>Destruktoren dürfen <strong>nie</strong> Exceptions werfen, sonst ist die Hölle los.</p>
<p>Aber ja, auch mir fallen viele Dinge (besonders Designsachen) ein, wenn ich nicht vor dem Computer sitze... <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/2018209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018209</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 08 Feb 2011 12:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Exception : Nicht fangbare Exception? on Tue, 08 Feb 2011 12:48:33 GMT]]></title><description><![CDATA[<p>Mein Destruktor muss aber eine potentiell werfende Funktion aufrufen.<br />
Wäre ein try-catch-Block innerhalb des Destruktors ok?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018219</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 08 Feb 2011 12:48:33 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Exception : Nicht fangbare Exception? on Tue, 08 Feb 2011 13:02:19 GMT]]></title><description><![CDATA[<blockquote>
<p>Wäre ein try-catch-Block innerhalb des Destruktors ok?</p>
</blockquote>
<p>Ja, nur du musst dir überlegen wie du die Exception innerhalb des Destruktors richtig behandelst. Nur verlassen darf sie den Destruktor nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018223</guid><dc:creator><![CDATA[Ausnahme]]></dc:creator><pubDate>Tue, 08 Feb 2011 13:02:19 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Exception : Nicht fangbare Exception? on Tue, 08 Feb 2011 13:02:40 GMT]]></title><description><![CDATA[<p>Ja, sofern keine Exception den Destruktor verlässt. Ist dann halt nicht immer trivial, eine Fehlerbehandlung durchzuführen...</p>
<p>Aber nicht-werfende Destruktoren und Deallokationsfunktionen sind ein Grundbaustein für eine exceptionsichere Anwendung, weil man sich ohne sie auf gar nichts mehr verlassen kann. Mindestens die Basis-Garantie (konsistente Zustände, doch Rollback nicht immer möglich) sollte angestrebt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018224</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 08 Feb 2011 13:02:40 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Exception : Nicht fangbare Exception? on Tue, 08 Feb 2011 13:12:13 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Mein Destruktor muss aber eine potentiell werfende Funktion aufrufen.<br />
Wäre ein try-catch-Block innerhalb des Destruktors ok?</p>
</blockquote>
<p>Ja, solang der catch alles fängt was fliegen kann und selbst nicht wirft.</p>
<p>Siehe auch hier:<br />
<a href="http://www.gotw.ca/gotw/047.htm" rel="nofollow">http://www.gotw.ca/gotw/047.htm</a></p>
<p>und hier:<br />
<a href="http://www.gotw.ca/gotw/066.htm" rel="nofollow">http://www.gotw.ca/gotw/066.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018231</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 08 Feb 2011 13:12:13 GMT</pubDate></item></channel></rss>