<?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[return-Variable im __finally Block auswerten]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>da ich mich mit C++ nicht so auskenne, beschäftigt mich seit einiger Zeit ein Problem.</p>
<p>Ich möchte in einer Funktion den return-Wert im __finally-Block nachträglich auswerten.</p>
<p>Hier nur ein kleines Beispiel:</p>
<pre><code>int fkt(int var1, int var2, ...)
{
  TKlasse* kl(0);

  try
  {
    // Variablen überprüfen
    if ( var1&lt;=0 ) 
      return 1;  // Error 1

    if ( var2&lt;=0 )
      return 2;  // Error 2

    // ansonsten
    // benötigte Objekte initialisieren
    kl = new TKlasse();

    tue was nötig ist
    return 0; // alles Ok
  }
  __finally
  {
    if ( return-Wert &gt; 0 )
      ShowMessage(&quot;Fehler aufgetreten&quot;);
    //
    // Speicher freigeben...
    if (kl)
      delete kl;
  }
}
</code></pre>
<p>Habt ihr eine Idee, wie ich den return-Wert abfragen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337760/return-variable-im-__finally-block-auswerten</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 23:24:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337760.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 26 Apr 2016 11:54:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to return-Variable im __finally Block auswerten on Tue, 26 Apr 2016 11:54:34 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>da ich mich mit C++ nicht so auskenne, beschäftigt mich seit einiger Zeit ein Problem.</p>
<p>Ich möchte in einer Funktion den return-Wert im __finally-Block nachträglich auswerten.</p>
<p>Hier nur ein kleines Beispiel:</p>
<pre><code>int fkt(int var1, int var2, ...)
{
  TKlasse* kl(0);

  try
  {
    // Variablen überprüfen
    if ( var1&lt;=0 ) 
      return 1;  // Error 1

    if ( var2&lt;=0 )
      return 2;  // Error 2

    // ansonsten
    // benötigte Objekte initialisieren
    kl = new TKlasse();

    tue was nötig ist
    return 0; // alles Ok
  }
  __finally
  {
    if ( return-Wert &gt; 0 )
      ShowMessage(&quot;Fehler aufgetreten&quot;);
    //
    // Speicher freigeben...
    if (kl)
      delete kl;
  }
}
</code></pre>
<p>Habt ihr eine Idee, wie ich den return-Wert abfragen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2494151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2494151</guid><dc:creator><![CDATA[watte]]></dc:creator><pubDate>Tue, 26 Apr 2016 11:54:34 GMT</pubDate></item><item><title><![CDATA[Reply to return-Variable im __finally Block auswerten on Tue, 26 Apr 2016 12:11:45 GMT]]></title><description><![CDATA[<p>Nur zur Info...</p>
<p><code>__finally</code> gehört nicht zum C++ ISO Standard, sondern ist eine Erweiterung von Microsoft: <a href="https://msdn.microsoft.com/en-us/library/swezty51.aspx" rel="nofollow">https://msdn.microsoft.com/en-us/library/swezty51.aspx</a></p>
<p>Das zugehörige &quot;try&quot; ist allerdings <code>__try</code> und nicht <code>try</code> . Für das Exception-Handling von Standard C++ gibt es <code>try</code> / <code>catch</code> - ein &quot;finally&quot; gibt es so nicht, allerdings wird RAII eingesetzt um denselben Effekt zu erzielen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2494155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2494155</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 26 Apr 2016 12:11:45 GMT</pubDate></item><item><title><![CDATA[Reply to return-Variable im __finally Block auswerten on Tue, 26 Apr 2016 12:18:16 GMT]]></title><description><![CDATA[<p>Und als Antwort auf deine eigentliche Frage:</p>
<p>Einfach den &quot;Return-Wert&quot; ausserhalb des <code>__try</code> / <code>__finally</code> Blocks definieren.</p>
<pre><code>int fkt(int var1, int var2, ...)
{
  int result = 0;

  __try
  {
     result = /* Berechnung etc. */;
  }
  __finally
  {
     // hier result benutzen...

     return result;
  }
}
</code></pre>
<p>In C++ macht man das typischerweise nicht, sondern benutzt RAII um Resourcen sicher freizugeben. Zumal, wie erwähnt, <code>__try</code> / <code>__finally</code> nur für Microsoft-Compiler verfügbar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2494159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2494159</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 26 Apr 2016 12:18:16 GMT</pubDate></item></channel></rss>