Ich arbeitete an Arrays heute und plötzlich stieß ich auf ein Szenario mit unerwarteten Ausnahmen.Array.copyOfRange Methode in Java löst falsche Ausnahme aus
Wenn Sie auf den Code unten schauen, ich denke, es ArrayIndexOutOfBoundsException
werfen muss, aber überraschend ist es IllegalArgumentException
werfen statt:
import java.util.Arrays;
public class RangeTest {
public static void main(String[] args) {
int[] a = new int[] {0,1,2,3,4,5,6,7,8,9};
int[] b = Arrays.copyOfRange(a, Integer.MIN_VALUE, 10);
// If we'll use Integer.MIN_VALUE+100 instead Integer.MIN_VALUE,
// OutOfMemoryError will be thrown
for (int k = 0; k < b.length; k++)
System.out.print(b[k] + " ");
}
}
Kann jemand mir helfen, und lassen Sie mich wissen, wenn ich mich nicht irre?
Der Kommentar in Ihrem Codeabschnitt sagt 'OutOfMemoryError'. Meinten Sie "IllegalArgumentException"? –