catchDas catch-Keyword ist nur in C++ verfügbar und dient dazu, eine Ausnahmebehandlung einer try-catch-Struktur zu definieren. Das
Siehe auch try-catch, throw, ... (catch-all) DetailsDer catch-Block kann als Funktionsdefinition angesehen werden, welche ein Argument mit beliebigen Typ (ausser void) erwartet. Es können beliebig viele catch-Blöcke hintereinander mit jeweils unterschiedlichen Typen definiert werden. Es ist erlaubt, für denselben Typ mehrere Routinen zu definieren, was jedoch nicht sinnvoll ist. Bei Auftreten eines throw-Operators wird die erste Routine aufgerufen, die dem Typ des Operators entspricht.
Tritt innerhalb des try-Blockes eine Ausnahme auf, die durch keine catch-Routine abgefangen wird, so wird dem Programm das Abort-Signal 6 gesendet, was ohne Abfangung zur Terminierung des Programmes führt. Um sämtliche, auch nicht-definierte Fehler-Typen abzufangen, gibt man anstelle eines Typs drei Punkte ... an, was umgangssprachlich auch als catch-all bezeichnet wird. Manchmal sieht man die catch-Deklaration ohne Variablenangabe, also nur mit Typ. Dies ist genauso wie bei Funktionen legitim, bedeutet jedoch, dass kein eigentliches Fehlerobjekt übergeben wird.
Eine detailiertere Beschreibung über die Benutzung der Typen bei catch-Blöcken findet man bei der try-catch-Struktur.
|