🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
3 messages
3 total messages Started by Thomas Aichberger Thu, 14 Sep 1995 15:04
C++ Exception-Handling
#395
Author: Thomas Aichberger
Date: Thu, 14 Sep 1995 15:04
21 lines
1138 bytes
Hi,

ich moechte fuer ein groesseres Projekt das C++ Exception-Handling
einsetzen. Die Anwendung muss auf HP- und SNI-Workstations
laufen - leider unterstuetzt der Sinix-Compiler das Exception-
Handling nicht.

Ich moechte daher das Exception-Handling mit Macros (zumindestens 
teilweise) nachbauen.
Hat jemand von euch sowas schon mal gemacht oder Erfahrungen
damit? Gibt es vieleicht sogar Klassenbibliotheken, die sowas
anbieten?

In einer ersten Ausbaustufe wuerde das Protokollieren der 
Aufrufhierarchie und Ausgeben von Fehlermeldungen reichen.

Beim 'echten' Exception-Handling werden zudem ja alle Destruktoren
durchlaufen - kann man sowas ueberhaupt nachbauen?

Vielen Dank,
Thomas
Re: C++ Exception-Handling
#404
Author: Martin Cracauer
Date: Fri, 15 Sep 1995 08:11
36 lines
1660 bytes
Thomas Aichberger <Thomas.Aichberger@sdm.de> writes:

>Hi,

>ich moechte fuer ein groesseres Projekt das C++ Exception-Handling
>einsetzen. Die Anwendung muss auf HP- und SNI-Workstations
>laufen - leider unterstuetzt der Sinix-Compiler das Exception-
>Handling nicht.

>Ich moechte daher das Exception-Handling mit Macros (zumindestens 
>teilweise) nachbauen.
>Hat jemand von euch sowas schon mal gemacht oder Erfahrungen
>damit? Gibt es vieleicht sogar Klassenbibliotheken, die sowas
>anbieten?

libobjects, die ObjC-Klassenbiliothek von GNU, implementiert ein
Macro-basiertes Exception Handling. Zu kriegen auf alpha.gnu.mit.edu
in /pub/gnu/.

>In einer ersten Ausbaustufe wuerde das Protokollieren der 
>Aufrufhierarchie und Ausgeben von Fehlermeldungen reichen.

Dazu brauchst Du schon den gdb.

>Beim 'echten' Exception-Handling werden zudem ja alle Destruktoren
>durchlaufen - kann man sowas ueberhaupt nachbauen?

Nicht portable. 

Um das zu machen, musst Du den Stack hochwandern und das geht nur,
indem man direkt mit dem Prozessor quatscht.
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer@wavehh.hanse.de>. No NeXTMail, please.
 Norderstedt/Hamburg, Germany. Fax +49 40 522 85 36. This is a 
 private address. At (netless) work programming in data analysis.
Re: C++ Exception-Handling
#419
Author: Joerg Koenig
Date: Mon, 18 Sep 1995 07:43
35 lines
1817 bytes
In article <1995Sep15.081128.17240@wavehh.hanse.de>, cracauer@wavehh.hanse.de (Martin Cracauer) says:
>
>Thomas Aichberger <Thomas.Aichberger@sdm.de> writes:
>
>>Hi,
>
>>ich moechte fuer ein groesseres Projekt das C++ Exception-Handling
>>einsetzen. Die Anwendung muss auf HP- und SNI-Workstations
>>laufen - leider unterstuetzt der Sinix-Compiler das Exception-
>>Handling nicht.

>>Beim 'echten' Exception-Handling werden zudem ja alle Destruktoren
>>durchlaufen - kann man sowas ueberhaupt nachbauen?
>
>Nicht portable. 
>
>Um das zu machen, musst Du den Stack hochwandern und das geht nur,
>indem man direkt mit dem Prozessor quatscht.

Das geht schon portabel zu machen. Ein Beispiel dazu ist der Artikel
"Emulating C++ exception handling" von Gregory Colvin im
"C/C++ Users Journal" vom Dezember '94 (Diesen Hinweis hab' ich
schon oefter gebraucht, deshalb kenn' ich ihn mittlerweile auswendig).
Allerdings wird hier nicht der Stack hochgewandert, sondern eine
Liste abgearbeitet, in der alle Objecte verzeichnet sind, die bis
zu dem entsprechenden "catch" abgebaut werden muessen.
Natuerlich hat dieser Emulator einige Einschraenkungen - aber
besser als gar nix ist es allemal.
Die Sourcen des Emulators sind komplett im Artikel abgedruckt und
aeusserst kompakt, so dass das Programm, welches diese Emu benutzt,
nur geringfuegig groesser wird.

Tschuess

	Joerg
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads