<?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 beim verlassen vom dtor]]></title><description><![CDATA[<p>Hi</p>
<p>Ich wurde darauf angesetzt den Grund für einen Absturz im Releas-Modus zu finden.</p>
<p>Ich konnte es jetzt soweit eingrenzen:</p>
<pre><code class="language-cpp">~obj()
{
 cout &lt;&lt; &quot;dtor start\n&quot;;

 //...

 cout &lt;&lt; &quot;dtor end\n&quot;;
}

//...

cout &lt;&lt; &quot;before delete\n&quot;;

delete pObj;

cout &lt;&lt; &quot;after delete\n&quot;;
</code></pre>
<p>Ausgabe:</p>
<p>before delete<br />
dtor start<br />
dtor end<br />
Exception</p>
<p>Der Quelltext steht unter Verschluss daher kann ich ihn hier nicht posten.</p>
<p>Hatte vielleicht jemand bereits das selbe Problem und kann mir einen Tipp geben wonach ich suchen muss?</p>
<p>mfg</p>
<p>rean</p>
<p>[EDIT]<br />
Alle beteiligten Klassen liegen übrigens in einer DLL.</p>
<p>Außerdem werden die member wohl noch richtig abegräumt da das:</p>
<pre><code class="language-cpp">struct test
{
~test(){ cout &lt;&lt; &quot;test dtor&quot;; }
};

class obj
{
//... ein ganzer haufen membervariablen

test test1;
}
</code></pre>
<p>folgende Ausgabe produziert:</p>
<p>before delete<br />
dtor start<br />
dtor end<br />
test dtor<br />
Exception</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/217444/exception-beim-verlassen-vom-dtor</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 16:45:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/217444.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Jul 2008 14:50:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exception beim verlassen vom dtor on Mon, 07 Jul 2008 14:56:10 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Ich wurde darauf angesetzt den Grund für einen Absturz im Releas-Modus zu finden.</p>
<p>Ich konnte es jetzt soweit eingrenzen:</p>
<pre><code class="language-cpp">~obj()
{
 cout &lt;&lt; &quot;dtor start\n&quot;;

 //...

 cout &lt;&lt; &quot;dtor end\n&quot;;
}

//...

cout &lt;&lt; &quot;before delete\n&quot;;

delete pObj;

cout &lt;&lt; &quot;after delete\n&quot;;
</code></pre>
<p>Ausgabe:</p>
<p>before delete<br />
dtor start<br />
dtor end<br />
Exception</p>
<p>Der Quelltext steht unter Verschluss daher kann ich ihn hier nicht posten.</p>
<p>Hatte vielleicht jemand bereits das selbe Problem und kann mir einen Tipp geben wonach ich suchen muss?</p>
<p>mfg</p>
<p>rean</p>
<p>[EDIT]<br />
Alle beteiligten Klassen liegen übrigens in einer DLL.</p>
<p>Außerdem werden die member wohl noch richtig abegräumt da das:</p>
<pre><code class="language-cpp">struct test
{
~test(){ cout &lt;&lt; &quot;test dtor&quot;; }
};

class obj
{
//... ein ganzer haufen membervariablen

test test1;
}
</code></pre>
<p>folgende Ausgabe produziert:</p>
<p>before delete<br />
dtor start<br />
dtor end<br />
test dtor<br />
Exception</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542803</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Mon, 07 Jul 2008 14:56:10 GMT</pubDate></item><item><title><![CDATA[Reply to Exception beim verlassen vom dtor on Mon, 07 Jul 2008 15:09:31 GMT]]></title><description><![CDATA[<p>[Glaskugel-Modus]</p>
<p>Es sieht aus, als wenn das Objekt, dessen Dtor Du da triggerst andere Objekte enthält, und von einem dieser Objekte scheint der Dtor eine Exception zu werfen.</p>
<p>[Glaskugel-Modus]</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">struct A
{
    ~A(){throw 0;} //NIEMALS !!
};

struct B
{
    ~B()
    {
        std::cout &lt;&lt; &quot;B Dtor begin\n&quot;;

        //hier wird aufgeraeumt...

        std::cout &lt;&lt; &quot;B Dtor end\n&quot;;
    }

    A a;
};

int main()
{
    B* b = new B();

    std::cout &lt;&lt; &quot;Vor delete\n&quot;;
    delete b;
    std::cout &lt;&lt; &quot;Nach delete\n&quot;;

}
</code></pre>
<p>Ausgabe:<br />
Vor delete<br />
B Dtor begin<br />
B Dtor end</p>
<p>This application has requested the Runtime to terminate it in an unusual way.<br />
Please contact the application's support team for more information.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542811</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 07 Jul 2008 15:09:31 GMT</pubDate></item><item><title><![CDATA[Reply to Exception beim verlassen vom dtor on Mon, 07 Jul 2008 14:53:21 GMT]]></title><description><![CDATA[<p>ohne quelltext ist es mit hilfe bekommen schwierig, da man das problem nicht finden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542812</guid><dc:creator><![CDATA[Quellcode]]></dc:creator><pubDate>Mon, 07 Jul 2008 14:53:21 GMT</pubDate></item><item><title><![CDATA[Reply to Exception beim verlassen vom dtor on Mon, 07 Jul 2008 14:55:00 GMT]]></title><description><![CDATA[<p>rean schrieb:</p>
<blockquote>
<p>Der Quelltext steht unter Verschluss daher kann ich ihn hier nicht posten.</p>
</blockquote>
<p>Das ist natürlich sehr hilfreich für eine Lösung des Problems. <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="🙄"
    /><br />
Kannst du nicht wenigstens eine Entsprechung aufschreiben? So können wir nur raten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542813</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 07 Jul 2008 14:55:00 GMT</pubDate></item><item><title><![CDATA[Reply to Exception beim verlassen vom dtor on Mon, 07 Jul 2008 15:12:57 GMT]]></title><description><![CDATA[<p>Bitte das Edit meines ersten Posts beachten.</p>
<p>Hier die Membervariablen:</p>
<pre><code class="language-cpp">//ein knappes dutzend int- und double-Werte

std::string m_sRootdir;
std::string m_sFileName;
std::string m_sSaveFileName;

std::ostringstream m_ss;

FILE* m_Fp;

unsigned short* p0[20][20];
unsigned short* p1[20][20];
</code></pre>
<p>Alle member werden korrekt initialisiert.</p>
<p>Der Filepointer wird eigentlich nicht verwenden( kein fopen etc. ).</p>
<p>Die einzigen Operationen die auf m_ss angewendet werden sind folgende:</p>
<pre><code class="language-cpp">m_ss.str(&quot;&quot;);
	m_ss.clear();

	m_ss &lt;&lt; &quot;str1\\&quot;; 

	if( a &lt; 0 )
	{
		m_ss &lt;&lt; &quot;str2&quot; &lt;&lt; std::setw( 3 ) &lt;&lt; std::setfill( '0' ) &lt;&lt; a * (-1) &lt;&lt; &quot;\\&quot;;
	} 
	if( b == 0 )
	{
		m_ss	&lt;&lt; &quot;.abc&quot; &lt;&lt; std::ends; 
	}
	else if( b == 1 )
	{
		m_ss	&lt;&lt; &quot;.def&quot; &lt;&lt; std::ends;
	}

	m_sFileName = &quot;&quot;;

	m_sFileName  = m_sRootdir + m_ss.str();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1542834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542834</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Mon, 07 Jul 2008 15:12:57 GMT</pubDate></item><item><title><![CDATA[Reply to Exception beim verlassen vom dtor on Mon, 07 Jul 2008 15:38:40 GMT]]></title><description><![CDATA[<p>Erbt Dein Exception werfendes Objekt zufällig von irgendetwas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542857</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 07 Jul 2008 15:38:40 GMT</pubDate></item><item><title><![CDATA[Reply to Exception beim verlassen vom dtor on Mon, 07 Jul 2008 16:04:57 GMT]]></title><description><![CDATA[<p>Nein.</p>
<p>Allerdings ist die Klasse wie folgt definiert:</p>
<pre><code class="language-cpp">#define DLLEXPORT __declspec(dllexport)

class DLLEXPORT obj;
</code></pre>
<p>Kann das was ausmachen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542877</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Mon, 07 Jul 2008 16:04:57 GMT</pubDate></item><item><title><![CDATA[Reply to Exception beim verlassen vom dtor on Mon, 07 Jul 2008 17:15:35 GMT]]></title><description><![CDATA[<p>was fuer ne exception fliegt denn? software oder hardware?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542908</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Mon, 07 Jul 2008 17:15:35 GMT</pubDate></item><item><title><![CDATA[Reply to Exception beim verlassen vom dtor on Mon, 07 Jul 2008 17:47:39 GMT]]></title><description><![CDATA[<p>Sag dem Debugger dass er beim Werfen einer Exception anhalten soll und guck halt einfach nach wo er anhält. Ist jetzt echt nicht so schwer... <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="🙄"
    /><br />
(Tip: man kann nämlich auch Release-Builds debuggen)</p>
<p>Falls das aus irgendeinem Grund nicht hinhauen sollte: fang die Exception und gib Typ (typeid) und Fehlertext (what) aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542927</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 07 Jul 2008 17:47:39 GMT</pubDate></item></channel></rss>