Javakurs/Übungsaufgaben/Errors
< Javakurs | Übungsaufgaben
Version vom 12. April 2007, 11:51 Uhr von 130.149.17.70 (Diskussion) (→java.lang.NoClassDefFoundError)
Inhaltsverzeichnis
Häufige Java Fehler mit Hilfe
CompilerFehler
Klammer fehlt
bruja shabanov 10 (Desktop/JavaKurs): javac Errors.java Errors.java:7: '}' expected ^ 1 error
- Es fehlt einfach eine geschweifte Klammer.
- Jedes mal wenn ihr eine geschweifte Klammer aufmacht, macht sie gleich wieder zu, damit ihrs später nicht vergesst.
- Bei Klammerfehlern solltet ihr nach jedem korrigierten Fehler neukompilieren, da es normalerweise zu sehr vielen Folgefehlern kommt.
Doppelte Deklaration
bruja shabanov 11 (Desktop/JavaKurs): javac Errors.java Errors.java:5: i is already defined in main(java.lang.String[]) for( int i = 0 ; i < 10 ; i++ ){ ^ 1 error
- Die Variable i ist irgendwo bereits definiert gewesen. Sucht also vor dieser Zeile nach einem:
int i = ..
- Ihr müsst dann den Variablennamen in der Schleife z.B. ändern.
Definition fehlt
bruja shabanov 5 (Desktop/JavaKurs): javac Errors.java Errors.java:15: variable ret might not have been initialized return ret; ^ 1 error
- Ihr habt eine Variable nicht richtig initialisiert, das passiert oft wenn ihr einer Variable innerhalb einer if-Anweisung Werte zuweist, wie in diesem Code ( der zudem obigen Fehler führt ):
public static String someMethod( int x ){ String ret; if( x == 4711 ){ ret = "foobar"; } return ret; }
- Die Variable ret bekommt nur dann einen Wert zugeordnet wenn x == 4711 gilt, da dies nicht immer der Fall sein muss, könnte der Fall auftreten, dass ret gar keinen Wert zugeordnet bekommt.
- Fügt einen default Wert für ret hinzu um diesen Fehler zu beheben, z.B. so:
String ret = "";
Missing return statement
bruja shabanov 6 (Desktop/JavaKurs): javac Errors.java Errors.java:17: missing return statement } ^ 1 error
- Ihr habt in einer Methode, die etwas zurückgeben soll entweder das return vergessen, oder das return steht nur innerhalb von if Anweisungen, wie hier:
public static boolean isPositive( int num ){ if( num > 0 ){ return true; }else if( num < 0 ){ return false; } }
- Da alle returns in einem if Block stehen, könnte es theoretisch sein, dass keiner der Blöcke ausgeführt wird und Java somit nicht weiss was es zurück geben soll.
- Fügt um das Problem zu Lösen ein return am Ende euerer Mthode ein, oder ändert ein else if in ein else.
public static boolean isPositive( int num ){ if( num > 0 ){ return true; }else if( num < 0 ){ return false; } return false; }
LaufzeitFehler
java.lang.NoClassDefFoundError
bruja shabanov 7 (Desktop/JavaKurs): java Errors Exception in thread "main" java.lang.NoClassDefFoundError: Errors
- Heisst Java kann die Klasse nicht finden, die ihr ausführen wollt.
- Schaut genau nach ob der Dateiname und der Klassennamme gleich sind. Dabei ist auch wichtig die Groß/Klein Schreibung zu beachten. Ausserdem achtet darauf ob ihr in die Konsole die richtigen Namen eingetippt habt.
java.lang.NoSuchMethodError
bruja shabanov 9 (Desktop/JavaKurs): java Errors Exception in thread "main" java.lang.NoSuchMethodError: main
- Java Findet eine Methode nicht ( hier speziell die main Methode )
- Schaut ob ihr beim Aufruf den Methodennamen richtig geschrieben habt.