<?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[Problem mit try catch]]></title><description><![CDATA[<p>Hallo,</p>
<p>in meinem Hauptprogramm verbinde ich mit LoadLibrary(..) eine dll.<br />
Dies klappt einwandfrei. In dieser dll werfe ich über throw eine Exception vom Typ ERR (eigener Datentyp).<br />
Einen try Block gibt es in der dll nicht, sondern nur in der Hauptanwendung, aus der ich eben Funktionen aus der dll aufrufe.</p>
<p>Komischerweise werden die Exceptions aus der dll im Hauptprogramm im catch Block (catch(...) {...}) nicht abgefangen.</p>
<p>Wieso?</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258500/problem-mit-try-catch</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 09:52:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258500.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 Jan 2010 14:38:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit try catch on Mon, 11 Jan 2010 14:38:06 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>in meinem Hauptprogramm verbinde ich mit LoadLibrary(..) eine dll.<br />
Dies klappt einwandfrei. In dieser dll werfe ich über throw eine Exception vom Typ ERR (eigener Datentyp).<br />
Einen try Block gibt es in der dll nicht, sondern nur in der Hauptanwendung, aus der ich eben Funktionen aus der dll aufrufe.</p>
<p>Komischerweise werden die Exceptions aus der dll im Hauptprogramm im catch Block (catch(...) {...}) nicht abgefangen.</p>
<p>Wieso?</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836800</guid><dc:creator><![CDATA[C++Student]]></dc:creator><pubDate>Mon, 11 Jan 2010 14:38:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit try catch on Mon, 11 Jan 2010 14:42:19 GMT]]></title><description><![CDATA[<p>C++Student schrieb:</p>
<blockquote>
<p>Wieso?</p>
</blockquote>
<p>Weil das böse ist, was du machst. Exceptions dürfen nicht über Bibliotheksgrenzen hinweg geworfen werden weil nicht sichergestellt ist, dass beide Bibliotheken (bzw. die Bibliothek und dein Hauptprogramm) den selben Mechanismus zum Exceptionhandling verwenden.<br />
Fehlerübergabe an Bibliotheksgrenzen sollte ausschließlich über Fehlercodes erfolgen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836802</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 11 Jan 2010 14:42:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit try catch on Mon, 11 Jan 2010 14:48:44 GMT]]></title><description><![CDATA[<p>Ok es mag böse sein, aber wie kann ich es lösen?</p>
<p>Also ich hab in den dlls Klassen, die Fehler werfen. Diese Fehler will ich ausserhalb der dll behandeln, und zwar im catch Block meiner Hauptanwendung.</p>
<p>Das Problem ist, ich komme gar nicht in diesen catch Block rein.</p>
<p>Was muss ich machen um eben da reinzukommen, egal wie böse es ist <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 />
Oder welche alternativen Lösungsmöglichkeiten gibt es?</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836809</guid><dc:creator><![CDATA[C++Student]]></dc:creator><pubDate>Mon, 11 Jan 2010 14:48:44 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit try catch on Mon, 11 Jan 2010 15:03:54 GMT]]></title><description><![CDATA[<p>C++Student schrieb:</p>
<blockquote>
<p>Ok es mag böse sein, aber wie kann ich es lösen?</p>
</blockquote>
<p>Mit Exceptions, die über Biblitoheksgrenzen hinweg fliegen garnicht.</p>
<blockquote>
<p>Also ich hab in den dlls Klassen, die Fehler werfen. Diese Fehler will ich ausserhalb der dll behandeln, und zwar im catch Block meiner Hauptanwendung.</p>
</blockquote>
<p>Wie schon gesagt, das geht nicht. Statt exceptions zu werfen kannst du nur Fehlercodes zurückgeben.</p>
<blockquote>
<p>Das Problem ist, ich komme gar nicht in diesen catch Block rein.</p>
</blockquote>
<p>Weil die Exceptions aus deiner Bibliothek rausfliegen und irgendwo im Nirvana landen und nie in der Hauptanwendung ankommen.</p>
<blockquote>
<p>Was muss ich machen um eben da reinzukommen, egal wie böse es ist <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 />
Oder welche alternativen Lösungsmöglichkeiten gibt es?</p>
</blockquote>
<p>Du kannst wie erwähnt nichts machen um da reinzukommen. Die alternative Lösungsmöglichkeit heißt, Fehlercodes zu erzeugen. Schlimmstenfalls so: Du fängst in der DLL die Exception, wadelst sie in einen entsprechenden Fehlercode um, gibst diesen über die Grenze in deine Hauptanwendung und schreibst dort eine Wrapperschicht, die die Fehlercodes analysiert und ggf. wieder eine Exception wirft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836825</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 11 Jan 2010 15:03:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit try catch on Mon, 11 Jan 2010 15:54:36 GMT]]></title><description><![CDATA[<p>Also erstmal danke für die Antworten.</p>
<p>Ich werde es dann &quot;klassisch&quot; lösen und Fehlercodes zurückgegen.</p>
<p>Wieder was gelernt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836873</guid><dc:creator><![CDATA[C++Student]]></dc:creator><pubDate>Mon, 11 Jan 2010 15:54:36 GMT</pubDate></item></channel></rss>