Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

C-Signalbehandlung und C++-Ausnahmebehandlung

&pagelevel(5)&pagelevel

Gemäß der C++-Sprachdefinition ist es nicht erlaubt, C++-Ausnahmebehandlung in C-Signalroutinen zu benutzen. Wenn während einer durch eine Ausnahme ausgelösten Stack-Abwicklung durch das Laufzeitsystem dennoch eine Signalroutine erreicht wird, wird so getan, als ob das Ende des Stacks erreicht ist. Es ist daher nicht möglich, eine Ausnahme aus einer Signalroutine zu werfen oder eine Ausnahme weiterzuwerfen, die mit catch vor dem Aufruf der Signalroutine abgefangen wurde. In solchen Fällen wird terminate aufgerufen.

Die Funktion unwind_exit (siehe "Zusätzliche Laufzeitfunktionen") führt die beschriebenen Destruktionen nicht vollständig durch, wenn sie aus Signalroutinen aufgerufen wird. Es erfolgt keine Destruktion der vor dem Aufruf der Signalroutine noch nicht gelöschten automatic Objekte sowie der bis dahin noch nicht beendeten Ausnahmeobjekte. Die Beendigung des Programms mit exit findet jedoch statt.