Exceptoin will nicht
-
Hallo,
was ist an folgender Exception falsch?
Position(int row, int column) throws Exception { if ( row < 0 || row > 7 || column < 0 || column > 7 ) throw new IllegalArgumentException("Zeilen- und Spaltenposition flasch"); this.row = row; this.column = column; }
Fehler:
Exception in thread "main" java.lang.IllegalArgumentException: Zeilen- und Spaltenposition flasch at Position.<init>(Position.java:22) at TestClass.main(TestClass.java:19)
-
Tolle Fehlerbeschreibung.
-
Ich würde den Fehler ja gerne konkretisieren, aber leider bin ich bei Exceptions absoluter Laie.
-
Zeig mal bitte den ganzen Code.
-
class Position { private final int row; //Zeilenkoordinate der Position private final int column; //Spaltenkoordinate der Position //Konstruktor für ein Positionsobjekt Position(int row, int column) //throws Exception { if ( row < 0 || row > 7 || column < 0 || column > 7 ) throw new IllegalArgumentException("Zeilen- und Spaltenposition flasch"); this.row = row; this.column = column; } //Getter für die Zeilenposition int getRow() { return row; } //Getter für die Spaltenposition int getColumn() { return column; } //Vergleicht diese Position mit einer anderen boolean isSame(Position other) { return row == other.row && column == other.column; } }
class TestClass { public static void main(String... args) { Position p1 = new Position(1,1); Position p2 = new Position(1,8); System.out.println(p2.isSame(p1)); } }
-
p2 wird mit column==8 initialisiert und trifft damit die Bedingungen, die zum throw führen sollen ("if(...||column>7) throw...") - da du die Exception nirgends abfängst, fliegt sie bis zum System durch und führt zu der angegebenen Fehlermeldung (die erste Zeile entspricht dem Inhalt, den du beim throw mitgeschickt hast, der Rest ist der Call-Stack (main(Datei "TestClass.java", Zeile 19 -> Position Ctor (Datei "Position.java", Zeile 22))
-
Hehe... sowas dachte ich schon.
Kam mir doch schon spanisch vor, daß er im Code eine selbstgebaute Exception schmeisst, und als die dann tatsächlich fliegt, das als Fehler anpreist...
-
Tut mir leid, hab heute erst mit Exceptions angefangen!
-
curry-king schrieb:
Tut mir leid, hab heute erst mit Exceptions angefangen!
Muß Dir nicht leid tun!
Einfach drüber lachen und auf den nächsten Fettnapf warten...Mach' ich auch immer!