Weiter zum Inhalt

{ Kategorie Archiv } 05. Fehler (Runtime/Compiler)

05.01 Fehler in Java

Nein, dieses Kapitel befasst sich nicht mit Bugs in der Programmiersprache Java, sondern mit Fehlermeldungen, Fehlerbehandlung und Fehlervermeidung in Ihren Programmen. Dabei wird grundsätzlich zwischen Compiler/Syntax-Fehlern und Runtime-Fehlern unterschieden.

05.02 Fehlerbehandlung

Wie sich ein Fehler in Ihrem Programm auswirken kann, haben Sie bereits im letzten Kapitel gelernt. Dieses Kapitel befasst sich mit dem Abfangen, Werfen und Weiterleiten von Exceptions.

05.03 ArrayIndexOutOfBoundsException

Eine ArrayIndexOutOfBoundsException wird geworfen, wenn auf einen Index außerhalb des Definitionsbereichs eines Arrays zugegriffen wird. Dies ist immer dann der Fall, wenn ein negativer Index, oder ein Index, der größer oder gleich der Größe (Rückgabewert des Attributes length) des Arrays ist, abgefragt wird.

05.03 ClassCastException

Es kommt immer dann zu einer ClassCastException, wenn der Versuch, ein Objekt einer Klasse in ein Objekt einer anderen Klasse zu casten (umzuwandeln) fehlschlägt. Dies ist bspw. dann der Fall, wenn ein cast zwischen zwei nicht kompatiblen Typen (z. B. Integer und String) stattfindet.

05.03 NoClassDefFoundError

Der NoClassDefFoundError, oder ausgeschrieben No Class Definition Found Error (Klassendefinition nicht gefunden) wird immer dann ausgelöst, wenn die Definition einer Klasse (also die *.class-Datei) zur Laufzeit nicht gefunden werden kann, beim Kompilieren aber noch vorhanden war.

05.03 NullPointerException

Eine NullPointerException wird immer dann geworfen, wenn null anstelle einer Instanz eines Objekts verwendet wurde. Dies ist immer dann der Fall, wenn einer Variablen eines Objekts der Wert null zugewiesen wurde, und auf dieses Objekt entsprechend zugegriffen wird. Siehe Kapitel 04.02 Objekte.

05.04 Cannot find symbol

Jedes Mal, wenn der Compiler einen bestimmten Teil Ihres Codes nicht finden kann, wirft er beim Kompilieren den Fehler cannot find symbol. Dies tritt z. B. dann auf, wenn auf eine Klasse zugegriffen wird, die nicht importiert ist, eine Variable verwendet wird, die zuvor nicht deklariert wurde, oder eine Methode aufgerufen werden soll, die nicht [...]

05.04 non static cannot be referenced from a static context

Vor allem beim Einstieg in die Programmierer-Welt kann es vorkommen, dass Sie den Compiler-Fehler non static method/variable cannot be referenced from a static context beim Kompilieren erhalten. Dies ist meistens dann der Fall, wenn Sie sich noch nicht mit Objekt-Orientierung (insbesondere mit dem Stichwort static) beschäftigt, oder sie noch nicht 100%ig verstanden haben. Dieses Kapitel [...]

05.04 Variable might not have been initialized

Wenn auf eine lokale Variable zugegriffen wird, ohne dass sie vorher initialisiert wurde, meldet der Compiler variable might not have been initialized. Dies tritt aber nicht auf, wenn Attribute nicht initialisiert wurden, da diese Ihren Standardwert zugewiesen bekommen (siehe Kapitel 02.03 Primitive Datentypen und Kapitel 04.02 Objekte).

05.05 UncaughtExceptionHandler

Auch wenn Sie Ihr Programm sehr gewissenhaft aufbauen, strukturieren und fast alle möglichen Konstellationen durchspielen, kann es dennoch vorkommen, dass eine Exception auftritt mit der Sie nicht gerechnet haben. In diesem Fall wird die Exception über den Error-Stream mitsamt StackTrace ausgegeben und das Programm beendet. Sie haben dann keine Möglichkeit mehr in irgendeiner Weise auf [...]