Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
techniken:objektorientjava2 [2016/07/20 17:12] c.jaedicke [Exception Handling] |
techniken:objektorientjava2 [2016/07/21 15:02] (aktuell) c.jaedicke [Exception Handling] |
||
---|---|---|---|
Zeile 135: | Zeile 135: | ||
} | } | ||
</code> | </code> | ||
- | Dieser Code führt zum Abbruch des Programms und es wird der Hinweis //NullPointerException// ausgegeben. Der Vorteil des sogenannten try-catch-Blocks ist das der Fehler nicht zum Absturz führt und eine detaillierte Fehlerausgabe mit Angabe der fehlerhaften Programmzeile. | + | Dieser Code führt zum Abbruch des Programms und es wird der Hinweis //NullPointerException// ausgegeben. Der Vorteil des sogenannten try-catch-Blocks ist das der Fehler nicht zum Absturz führt und eine detaillierte Fehlerausgabe mit Angabe der fehlerhaften Programmzeile generiert wird. |
+ | <code java> | ||
+ | Robot myRobot; | ||
+ | void setup() { | ||
+ | size(199,199); | ||
+ | } | ||
+ | void draw() { | ||
+ | try | ||
+ | { | ||
+ | myRobot.drawRobot(); | ||
+ | } | ||
+ | catch(Exception e) | ||
+ | { | ||
+ | println("Exception: " + e.getMessage()); | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | Die Ausgabe zeigt euch den Pfad in dem der Fehler aufgetreten ist, wobei die erste Zeile eure Message ist, die zweite der Exception-Typ und die dritte gibt euch am Ende der Zeile die entsprechende Zeile in eurem Code: | ||
+ | <code> | ||
+ | Exception: null | ||
+ | java.lang.NullPointerException | ||
+ | at sketch_160720a.draw(sketch_160720a.java:24) | ||
+ | at processing.core.PApplet.handleDraw(PApplet.java:2402) | ||
+ | at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1527) | ||
+ | at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:316) | ||
+ | </code> | ||
+ | |||
+ | <note important>Processing fügt eurem Code vor dem Kompilieren noch einige Zeilen Code hinzu, daher verschiebt sich die Zeilenangabe etwas. Die Verschiebung müsst ihr experimentell feststellen!</note> |