Hallo,
Ich habe folgende Aufgabe :
Die nachfolgenden Programme sind syntaktisch korrekt und compilierbar, führen aber zu
einem fehlerhaften Laufzeitverhalten. Geben Sie die Art des auftretenden Fehlers an und
erklären Sie kurz, wodurch er verursacht wird!
Ich hätte jetzt gesagt es würde eine NegativeArraySizeException auftreten, da ja immer wieder ein kleineres Feld args erzeugt wird, bis die Größe negativ werden würde.
Tja, stimmt aber nicht...
Der Fehler der zuerst auftritt ist die Endlosschleife, weil die while Bedingung nie falsch wird.
Mir ist nicht einleuchtend warum dieser Fehler vor der NegativeArraySizeException auftritt, kann mir da vielleicht jemand auf die Sprünge helfen?
Ich habe folgende Aufgabe :
Die nachfolgenden Programme sind syntaktisch korrekt und compilierbar, führen aber zu
einem fehlerhaften Laufzeitverhalten. Geben Sie die Art des auftretenden Fehlers an und
erklären Sie kurz, wodurch er verursacht wird!
Java:
// 1.
public class LaufzeitFehler1 {
public static void doSomething(int[] feld) {
while (feld.length > 0)
doSomethingOther(feld);
}
public static void doSomethingOther(int[] feld) {
int[] args = new int[feld.length - 1];
for (int i = 0; i < args.length; i++)
args[i] = feld[i] - 3;
doSomething(args);
}
public static void main(String[] args) {
doSomething(new int[] { 1, 2, 3 });
}
}
Tja, stimmt aber nicht...
Der Fehler der zuerst auftritt ist die Endlosschleife, weil die while Bedingung nie falsch wird.
Mir ist nicht einleuchtend warum dieser Fehler vor der NegativeArraySizeException auftritt, kann mir da vielleicht jemand auf die Sprünge helfen?
Zuletzt bearbeitet von einem Moderator: