30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

15.7 Weiterführendes zu Exceptions 487<br />

zum<strong>in</strong>dest kann man noch Handlungen setzen, bevor das Programm über den<br />

Jordan geschickt wird. Warum man den Abbruch nicht verh<strong>in</strong>dern kann, ist<br />

e<strong>in</strong>leuchtend: Wird e<strong>in</strong>e Exception geworfen, dann wird das Stack Unw<strong>in</strong>d<strong>in</strong>g<br />

so lange durchgeführt, bis man bei e<strong>in</strong>em entsprechenden catch angelangt ist.<br />

Sollte ke<strong>in</strong>es gefunden werden, so ist dadurch auch ma<strong>in</strong> dem Unw<strong>in</strong>d<strong>in</strong>g zum<br />

Opfer gefallen. Wie soll man also dann noch im Programm weitermachen? Es<br />

gibt e<strong>in</strong>fach ke<strong>in</strong>en Punkt mehr, an dem man neu aufsetzen könnte. An e<strong>in</strong>em<br />

kurzen Beispiel betrachtet, sieht das dann so aus (uncaught_exc_demo.cpp):<br />

1 // uncaught exc demo . cpp − demo f o r uncaught exceptions<br />

2<br />

3 #<strong>in</strong>clude <br />

4 #<strong>in</strong>clude < t y pe<strong>in</strong>fo><br />

5 #<strong>in</strong>clude <br />

6 #<strong>in</strong>clude ” u s e r t y p e s . h”<br />

7<br />

8 us<strong>in</strong>g std : : cout ;<br />

9 us<strong>in</strong>g std : : endl ;<br />

10 us<strong>in</strong>g std : : s e t t e r m i n a t e ;<br />

11<br />

12 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

13 class OneException<br />

14 {<br />

15 } ;<br />

16<br />

17 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

18 void doSometh<strong>in</strong>g ( )<br />

19 throw( OneException )<br />

20 {<br />

21 cout

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!