05.11.2013 Aufrufe

Vergleich von Delphi und Visual C++ - Inhalt

Vergleich von Delphi und Visual C++ - Inhalt

Vergleich von Delphi und Visual C++ - Inhalt

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Vergleich</strong> <strong>von</strong> <strong>Delphi</strong> <strong>und</strong> <strong>Visual</strong> <strong>C++</strong> - Kapitel 2B<br />

Ausgabe:<br />

Variable i = 5<br />

Variable k = 11<br />

Variable l = 11<br />

Variable j = 16<br />

Anders als man erwarten könnte ist Variable l nun nicht 17 sondern 11.<br />

Anmerkungen zu Ausnahmebehandlungen (Exceptions):<br />

Exceptions sind ein Hilfsmittel zur Behandlung <strong>von</strong> Ausnahmesituationen in Programmen, insbesondere zur Fehlerbehandlung. Wenn eine Exception<br />

ausgelöst wird, verzweigt das Programm sofort zu einem Exception-Handler, der auf den Fehler reagieren kann. Durch die Benutzung <strong>von</strong> Exceptions<br />

wird der normale Kontrollfluß des Programms vom Kontrollfluß für Fehlerfälle getrennt, wodurch das Programm besser strukturiert wird <strong>und</strong> leichter<br />

zu warten ist. Der Einsatz <strong>von</strong> Exceptions garantiert, daß Fehler im ganzen Programm in einer konsistenten Weise behandelt <strong>und</strong> angezeigt werden.<br />

Belegte Systemressourcen können mit Sicherheit frei gegeben werden <strong>und</strong> Laufzeitfehler müssen ein Programm nun nicht mehr zwangsweise beenden.<br />

Die Exceptions in <strong>Visual</strong> <strong>C++</strong> <strong>und</strong> Object Pascal haben viele Gemeinsamkeiten; insbesondere sind sie in beiden Sprachen Typ-basierend. Beim<br />

Erzeugen einer Exception wird der Typ der Exception festgelegt, indem beim throw bzw. raise Aufruf ein Argument übergeben wird. Die Exception ist<br />

dann vom selben Typ wie der Typ dieses Arguments. Exceptions können in <strong>C++</strong> <strong>von</strong> beliebigem Typ sein. In Object Pascal dagegen sind Exceptions<br />

nur vom Typ Objekt (bevorzugt abgeleitet <strong>von</strong> der Klasse Exception) zulässig.<br />

Mehrere Exception-Handler können, einem try-Block nachfolgend, angelegt werden. Sie werden durch das Wort catch in <strong>C++</strong> <strong>und</strong> except in Object<br />

Pascal eingeleitet. Der zuständige Exception-Handler, der für die Auswertung der aufgetretenen Exceptions verantwortlich ist, wird dadurch<br />

ausgewählt, indem geprüft wird, <strong>von</strong> welchem Typ die Exception ist <strong>und</strong> welcher Handler diese Exception verarbeiten kann.<br />

Eine einmal erzeugte Exception bleibt so lange bestehen, bis sie behandelt oder die Anwendung beendet wird. Deshalb müssen auftretende Exceptions<br />

in irgendeiner Weise behandelt werden. <strong>Visual</strong> <strong>C++</strong> <strong>und</strong> Object Pascal bieten vordefinierte Standardbehandlungsfunktionen (Default-Handler) für<br />

Exceptions an. Deswegen braucht man nicht alle möglicherweise auftretenden Exceptions in jedem try...catch / try...except Block zu behandeln.<br />

Die Klassenbibliothek <strong>von</strong> <strong>Visual</strong> <strong>C++</strong> (MFC) bietet, ebenso wie die Klassenbibliothek <strong>von</strong> <strong>Delphi</strong> (VCL), eine Vielzahl bereits vordefinierter<br />

Exception-Klassen an. Ein entscheidender Unterschied zwischen beiden Sprachen ist die Tatsache, daß eine Exception-Klasse in <strong>Visual</strong> <strong>C++</strong> innerhalb<br />

des Exception-Handlers gelöscht werden muß <strong>und</strong> in Object Pascal nicht gelöscht werden darf.<br />

http://ourworld.compuserve.com/homepages/praxisservice/kapit2b.htm (37 of 52) [19.05.2000 15:30:09]

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!