<?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[new Exception werfen lassen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe die Funktion new so überladen, dass sie meine selbsterstellte<br />
Exception MemoryAllocationException geworfen wird, falls dies nicht möglich ist.<br />
Nun ist mir eingefallen, dass die STL usw ja auch immer new benutzen<br />
und sicher irgendwo std::bad_alloc fangen möchten. Diese wird aber wegen<br />
einer Überladung nicht mehr geworfen.</p>
<p>Nun ist meine Frage, ist es überhaupt sinnvoll new zu Überladen, oder<br />
schafft es mehr Probleme als es löst.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/226012/new-exception-werfen-lassen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 03:24:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/226012.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Oct 2008 09:26:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to new Exception werfen lassen on Tue, 28 Oct 2008 09:26:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe die Funktion new so überladen, dass sie meine selbsterstellte<br />
Exception MemoryAllocationException geworfen wird, falls dies nicht möglich ist.<br />
Nun ist mir eingefallen, dass die STL usw ja auch immer new benutzen<br />
und sicher irgendwo std::bad_alloc fangen möchten. Diese wird aber wegen<br />
einer Überladung nicht mehr geworfen.</p>
<p>Nun ist meine Frage, ist es überhaupt sinnvoll new zu Überladen, oder<br />
schafft es mehr Probleme als es löst.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605942</guid><dc:creator><![CDATA[peter1234]]></dc:creator><pubDate>Tue, 28 Oct 2008 09:26:17 GMT</pubDate></item><item><title><![CDATA[Reply to new Exception werfen lassen on Tue, 28 Oct 2008 09:44:10 GMT]]></title><description><![CDATA[<p>Letzteres.</p>
<p>Warum sollte new scheitern? Weil nicht genügend Speicher da ist vermutlich. Eine neue Exception anzulegen und diese zu behandeln dürfte dann ebenso die Grenzen des Speichers sprengen etc.</p>
<p>Bezweifle das das sinnvoll ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605946</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 28 Oct 2008 09:44:10 GMT</pubDate></item><item><title><![CDATA[Reply to new Exception werfen lassen on Tue, 28 Oct 2008 09:47:38 GMT]]></title><description><![CDATA[<p>Eigentlich wirft new eh ein bad_alloc, wenn kein Speicher mehr frei ist. Wozu eine eigene Exception reinbasteln? In der STL sollte das eigentlich kein Problem machen, da intern meines Wissens keine Exceptions gefangen sondern diese immer hoch gereicht werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605948</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 28 Oct 2008 09:47:38 GMT</pubDate></item><item><title><![CDATA[Reply to new Exception werfen lassen on Wed, 29 Oct 2008 13:16:41 GMT]]></title><description><![CDATA[<p>Jetzt habe ich ein neues Problem,</p>
<p>Ich habe new Überladen, jedoch weiß der Compiler,<br />
jetzt nicht, welches new er benutzen soll. Es kommt immer der<br />
Fehler</p>
<pre><code>error: call of overloaded `operator new [](unsigned int)' is ambiguous
</code></pre>
<p>Wie kann ich dem Compiler mitteilen, dass er nur noch mein new verwenden soll?</p>
<p>Ich verwende GCC mit Codeblocks.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1606604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1606604</guid><dc:creator><![CDATA[peter1234]]></dc:creator><pubDate>Wed, 29 Oct 2008 13:16:41 GMT</pubDate></item><item><title><![CDATA[Reply to new Exception werfen lassen on Wed, 29 Oct 2008 13:24:57 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Warum sollte new scheitern? Weil nicht genügend Speicher da ist vermutlich. Eine neue Exception anzulegen und diese zu behandeln dürfte dann ebenso die Grenzen des Speichers sprengen etc.</p>
</blockquote>
<p>Um mich selbst mal aus einen anderen Thread zu zitieren:</p>
<p>asc schrieb:</p>
<blockquote>
<p>Also, die übliche Strategie die ich zum bad_alloc gelernt habe ist, das man anfangs einen Speicherbereich alloziert, den man im Falle des bad_alloc freigibt. Ob diese Strategie unter allen Betriebssystemen klappt ist die andere Frage, wäre aber eine mögliche bad_alloc Behandlung (Mit einer Meldung ala &quot;Achtung: Sie haben nur noch wenig freien Speicher frei. Bitte beenden sie überflüssige Anwendungen und speichern sie.&quot;).</p>
</blockquote>
<p>Ich habe bislnag noch keinen Kommentar darauf erhalten ob dies in der Praxis wirklich gangbar ist (ich weiß auch nicht mehr die Quelle wo ich das mit der vorträglichen Allozierung her habe).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1606612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1606612</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 29 Oct 2008 13:24:57 GMT</pubDate></item></channel></rss>