<?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[Throwing von nicht existierenden Klassen]]></title><description><![CDATA[<p>Hallo</p>
<p>Wie kann die STD eine Exception werfen, dessen Typ nicht existiert?</p>
<p>MfG, EOutOfResources</p>
<p>EDIT: Beispielsweise kann std::bad_alloc geworfen werden, ohne das der Typ exisitiert!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/283142/throwing-von-nicht-existierenden-klassen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 18:25:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/283142.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 05 Mar 2011 22:46:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Throwing von nicht existierenden Klassen on Sat, 05 Mar 2011 22:46:44 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Wie kann die STD eine Exception werfen, dessen Typ nicht existiert?</p>
<p>MfG, EOutOfResources</p>
<p>EDIT: Beispielsweise kann std::bad_alloc geworfen werden, ohne das der Typ exisitiert!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030314</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 05 Mar 2011 22:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to Throwing von nicht existierenden Klassen on Sat, 05 Mar 2011 23:11:56 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/std/new/bad_alloc/" rel="nofollow">http://www.cplusplus.com/reference/std/new/bad_alloc/</a></p>
<p>Existiert doch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030316</guid><dc:creator><![CDATA[Irgendwer]]></dc:creator><pubDate>Sat, 05 Mar 2011 23:11:56 GMT</pubDate></item><item><title><![CDATA[Reply to Throwing von nicht existierenden Klassen on Sat, 05 Mar 2011 23:25:11 GMT]]></title><description><![CDATA[<p>Wie kamst du denn darauf, dass es die Klasse nicht gibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030320</guid><dc:creator><![CDATA[fdfdg]]></dc:creator><pubDate>Sat, 05 Mar 2011 23:25:11 GMT</pubDate></item><item><title><![CDATA[Reply to Throwing von nicht existierenden Klassen on Sun, 06 Mar 2011 06:55:30 GMT]]></title><description><![CDATA[<p>Wenn ich keinen STD-Header include existiert std::bad_alloc nicht.</p>
<pre><code class="language-cpp">int main(void)
{
  std::bad_alloc bar;
}
</code></pre>
<p>Gibt bei mit:</p>
<p>Compiler schrieb:</p>
<blockquote>
<p>E2090 Qualifizer 'std' ist kein Name einer Klasse oder eines Namespace<br />
E2379 In Anweisung fehlt ;</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2030333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030333</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sun, 06 Mar 2011 06:55:30 GMT</pubDate></item><item><title><![CDATA[Reply to Throwing von nicht existierenden Klassen on Sun, 06 Mar 2011 07:23:39 GMT]]></title><description><![CDATA[<p>In der Datei new.cpp (oder ähnlicher Name, also wo der Sourcecode für new geschrieben wurde) existiert natürlich bad_alloc. Und dort wird die Exception mit throw geworfen. Oh, Du hast keine new.cpp? Ja, kann sein. Die wird nicht immer als Quelltext ausgeliefert, sondern liegt bei Dir wohl bereits compiliert als Teil der Bibliotheken vor.<br />
Eine Datei, die new dann aufruft, muß bad_alloc natürlich nicht mehr inkludieren. Du müßtest nur bad_alloc inkludieren, wenn Du so eine Exception selber mit throw werfen wolltest oder eine mit catch gefangene auswerten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030335</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 06 Mar 2011 07:23:39 GMT</pubDate></item><item><title><![CDATA[Reply to Throwing von nicht existierenden Klassen on Sun, 06 Mar 2011 08:23:37 GMT]]></title><description><![CDATA[<p>Ausnahmen sind &quot;relativ dynamisch&quot;. Du kannst zwei Übersetzungeunheiten haben:</p>
<pre><code class="language-cpp">void foo();

int main()
{
  foo();
}
</code></pre>
<pre><code class="language-cpp">struct x {};

void foo()
{
  throw x();
}
</code></pre>
<p>Das Programm kannst Du erzeugen (ÜEs kompilieren + linken). Der Typ x wird in der zweiten ÜE definiert und foo schmeißt eine Ausnahme dieses Typs. Dass diese Ausnahme in der ersten ÜE nicht gefangen wird ist eigentlich ein Fehler. Das darf gar nicht passieren. Dein Compiler ist nur so gnädig, Code einzufügen, der bei einem Abbruch von main Dir sagt, dass eine Ausnahme vom Typ ::foo geworfen und nicht gefangen wurde. Die nötige Information (runtime type information) fügt der Compiler wegen dem &quot;throw x()&quot; beim Übersetzen der 2. ÜE ein, was dann einfach ausgewertet wird. Um die Ausnahme korrekt fangen zu können, muss der Typ natürlich auch in der ersten ÜE bekannt sein.</p>
<p>Genauso wird Dein Programm gegen die Standardbibliothek gelinkt (typischerweise; der Standard beschränkt sich nicht auf den compile+link Ansatz). Irgendwo dabei sind die entsprechenden Typinformationen für std::bad_alloc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030336</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 06 Mar 2011 08:23:37 GMT</pubDate></item><item><title><![CDATA[Reply to Throwing von nicht existierenden Klassen on Sun, 06 Mar 2011 22:30:50 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>Wenn ich keinen STD-Header include existiert std::bad_alloc nicht.</p>
<pre><code class="language-cpp">int main(void)
{
  std::bad_alloc bar;
}
</code></pre>
</blockquote>
<p>Klar existiert <code>std::bad_alloc</code> dann noch, bloss ist es in deiner Übersetzungseinheit nicht deklariert.<br />
Deswegen hat es sich aber nicht in Luft aufgelöst.<br />
Es verschwindet ja auch nicht die ganze Welt, jedes mal wenn ich die Augen zumache <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/2030603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030603</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 06 Mar 2011 22:30:50 GMT</pubDate></item><item><title><![CDATA[Reply to Throwing von nicht existierenden Klassen on Sun, 06 Mar 2011 23:00:16 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Es verschwindet ja auch nicht die ganze Welt, jedes mal wenn ich die Augen zumache <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>
</blockquote>
<p>Frag da mal einen Quantenphysiker, der zeigt dir, dass das durchaus möglich ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030608</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 06 Mar 2011 23:00:16 GMT</pubDate></item><item><title><![CDATA[Reply to Throwing von nicht existierenden Klassen on Mon, 07 Mar 2011 00:02:31 GMT]]></title><description><![CDATA[<p>Deepak Chopra ist kein Quantenphysiker.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030614</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 07 Mar 2011 00:02:31 GMT</pubDate></item><item><title><![CDATA[Reply to Throwing von nicht existierenden Klassen on Mon, 07 Mar 2011 12:37:43 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Es verschwindet ja auch nicht die ganze Welt, jedes mal wenn ich die Augen zumache <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>
</blockquote>
<p>Frag da mal einen Quantenphysiker, der zeigt dir, dass das durchaus möglich ist.</p>
</blockquote>
<p>Ne, da hast du was falsch verstanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030753</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 07 Mar 2011 12:37:43 GMT</pubDate></item></channel></rss>