Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10
Programmierkurs Exceptions Behandlung von Exceptions Der finally-Block catch or throw
Birgit Engels Anna Schulze Zentrum f¨ ur Angewandte...
Programmierkurs Exceptions Behandlung von Exceptions Der finally-Block catch or throw
Birgit Engels Anna Schulze Zentrum f¨ ur Angewandte Informatik K¨ oln
WS 07/08
1 / 23
2 / 23
Grundlagen von Exceptions
Exceptions erm¨oglichen die strukturierte Behandlung von Fehlern, die w¨ahrend der Programmausf¨ uhrung auftreten Beispiele, in denen Exceptions verwendet werden: ◮
◮
10.1 Behandlung von Exceptions
Laufzeitfehler, weil ein Array-Zugriff außerhalb der definerten Grenzen erfolgte Eine Datei, die ge¨offnet werden soll, wird nicht gefunden
3 / 23
4 / 23
Die try-catch-Anweisung try { Anweisung; } catch (Exception x) { Anweisung; } catch (Exception y) { Anweisung; } Der try-Block enth¨alt dabei Anweisungen, bei deren Ausf¨ uhrung ein Fehler des Typs Ausnahmetyp auftreten kann. In diesem Fall wird die normale Programmausf¨ uhrung unterbrochen und der Programmablauf f¨ahrt mit der ersten Anweisung nach der catch-Klausel fort, die den passenden Ausnahmetyp deklariert hat
10.2 Der finally-Block
5 / 23
Der finally-Block
6 / 23
Der finally-Block
Der finally-Block wird immer dann ausgef¨ uhrt, wenn die try-Klausel betreten wurde
D.h. der finally-Block wird ausgef¨ uhrt, wenn der try-Block durch eine der folgenden Anweisungen verlassen wurde:
try
Das normale Ende des try-Blockes wurde erreicht
{
Eine Exception ist aufgetreten, die durch eine catch-Klausel behandelt wurde
Anweisung; }
Eine Exception ist aufgetreten, die nicht durch eine catch-Klausel behandelt wurde
catch(Exception e) {
Der try-Block wurde durch eine der Sprunganweisungen breack, continue oder return verlassen
Anweisung; }
Die finally-Klausel ist also der Ort, um Aufr¨aumarbeiten durchzuf¨ uhren. Z.B. k¨ onnen Dateien geschlossen werden.
finally { Anweisung; }
7 / 23
8 / 23
Die throw-Anweisung catch or throw Regel: Entweder die Exception wird durch catch behandelt Oder durch throw weitergegeben Dazu wird an des Ende des Methodenkopfes das Schl¨ usselwort throw mit einer Liste aller Ausnahmen, die nicht behandelt werden sollen, angeh¨angt.
10.3 catch or throw
public static void SqrtTable() throws ArithmeticException { double x=-1.0; while(x