Anzeigen: Delphi C++
Anzeigeeinstellungen

__finally

Aus RAD Studio XE2
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index


Kategorie

Anweisungen, Schlüsselwort-Erweiterungen

Syntax

__finally {zusammengesetzte anweisung}

Beschreibung

Das Schlüsselwort __finally spezifiziert eine Aktion, die unabhängig davon durchgeführt werden soll, wie der Programmablauf durch das vorangehende __try-Konstrukt endet.


Beispiel

Das folgende Code-Fragment zeigt die Verwendung des try/__finally-Konstrukts:

#include <stdio.h>
#include <string.h>
#include <windows.h>

class Exception
{
 public:
  Exception(char* s = "Unbekannt"){what = strdup(s);      }
  Exception(const Exception& e )  {what = strdup(e.what); }
 ~Exception()                     {free(what);         }
  char* msg() const               {return what;           }
 private:
  char* what;
 };

 int main()
 {
  float e, f, g;
  try  
  {
    try    
    {
      f = 1.0;
      g = 0.0;
      try
      {  
        puts("Weitere Exception:");
        
        e = f / g;
      }
      __except(EXCEPTION_EXECUTE_HANDLER)
      {
        puts("Eine C-basierte Exception gefunden.");
        throw(Exception("Hardware-Fehler: Division durch 0"));
      }
    }
    catch(const Exception& e)
    {
      printf("C++-Exception gefunden: %s :\n", e.msg());
    }
  }
  __finally
  {
    puts("In C++ ist __finally auch zulässig!");
  }
  return e;
  }

Das obige Programm erzeugt die folgende Ausgabe:

Weitere Exception:

Eine C-basierte Exception gefunden.

C++-Exception gefunden[Hardware-Fehler: Division durch 0]

In C++ ist __finally auch zulässig!

Siehe auch

Frühere Versionen
In anderen Sprachen