<?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 mit String Literal korrekt?]]></title><description><![CDATA[<p>Es geht um folgenden Code:</p>
<pre><code class="language-cpp">void func() {
   throw &quot;Test&quot;;
}

void main() {
   try { func(); } catch(char* ptr) {cout &lt;&lt; ptr;};
}
</code></pre>
<p>Ich war bis jetzt immer der Meinung das ein String Literal ungültig (aka koennte wieder überschrieben werden) wird nachdem der Scope/Funktionscope verlassen wird.</p>
<p>Liege ich da Korrekt und der obige Code ist falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/209005/exception-mit-string-literal-korrekt</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 09:22:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/209005.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Mar 2008 16:59:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exception mit String Literal korrekt? on Tue, 25 Mar 2008 16:59:01 GMT]]></title><description><![CDATA[<p>Es geht um folgenden Code:</p>
<pre><code class="language-cpp">void func() {
   throw &quot;Test&quot;;
}

void main() {
   try { func(); } catch(char* ptr) {cout &lt;&lt; ptr;};
}
</code></pre>
<p>Ich war bis jetzt immer der Meinung das ein String Literal ungültig (aka koennte wieder überschrieben werden) wird nachdem der Scope/Funktionscope verlassen wird.</p>
<p>Liege ich da Korrekt und der obige Code ist falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1480169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1480169</guid><dc:creator><![CDATA[DaRpH]]></dc:creator><pubDate>Tue, 25 Mar 2008 16:59:01 GMT</pubDate></item><item><title><![CDATA[Reply to Exception mit String Literal korrekt? on Tue, 25 Mar 2008 17:09:01 GMT]]></title><description><![CDATA[<p>Nein, du liegst falsch -)</p>
<p>Ein String-Literal ist ein konstanter Ausdruck, der im DATA-Part der Anwendung abgelegt wird (d.h. er wird beim Programmstart in den Hauptspeicher geladen und erst beim Beenden des Programms vom Betriebssystem wieder verworfen).<br />
Mit anderen Worten: er wird nicht auf dem Stack abgelegt.</p>
<p>Nichtsdestotrotz sollte man besser eigene Exception-Klassen (am besten von std::runtime_error oder std::logic_error abgeleitet) verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1480177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1480177</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Tue, 25 Mar 2008 17:09:01 GMT</pubDate></item><item><title><![CDATA[Reply to Exception mit String Literal korrekt? on Tue, 25 Mar 2008 18:38:36 GMT]]></title><description><![CDATA[<p>Anzumerken ist noch, dass obige catch-Klausel das von func geworfene Exception-Objekt nicht fangen kann, denn das Exception-Objekt ist vom Typ const char* .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1480230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1480230</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 25 Mar 2008 18:38:36 GMT</pubDate></item><item><title><![CDATA[Reply to Exception mit String Literal korrekt? on Tue, 25 Mar 2008 19:42:14 GMT]]></title><description><![CDATA[<p>wird aber trotzdem gefangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1480265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1480265</guid><dc:creator><![CDATA[DaRpH]]></dc:creator><pubDate>Tue, 25 Mar 2008 19:42:14 GMT</pubDate></item><item><title><![CDATA[Reply to Exception mit String Literal korrekt? on Wed, 26 Mar 2008 11:46:15 GMT]]></title><description><![CDATA[<p>Ja, was es alles für nicht-standardkonforme Compiler gibt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1480543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1480543</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 26 Mar 2008 11:46:15 GMT</pubDate></item><item><title><![CDATA[Reply to Exception mit String Literal korrekt? on Wed, 26 Mar 2008 15:45:55 GMT]]></title><description><![CDATA[<p>Hmm? Stringliterale sind doch implizit in char* konvertierbar (4.2/2) oder gilt das nicht für catch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1480739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1480739</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Wed, 26 Mar 2008 15:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to Exception mit String Literal korrekt? on Wed, 26 Mar 2008 16:05:06 GMT]]></title><description><![CDATA[<p>.filmor schrieb:</p>
<blockquote>
<p>Hmm? Stringliterale sind doch implizit in char* konvertierbar (4.2/2) oder gilt das nicht für catch?</p>
</blockquote>
<p>Das ist schon richtig, nur ist das Argument des Exception-Handlers kein Stringliteral. Es gibt sogar eine imo überflüssige Notiz deswegen im Standard (15.1/3).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1480758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1480758</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 26 Mar 2008 16:05:06 GMT</pubDate></item></channel></rss>