Oggi stavo lavorando sugli array e all'improvviso mi sono imbattuto in uno scenario che genera eccezioni impreviste.Il metodo Arrays.copyOfRange in java genera un'eccezione errata
Se si guarda il codice qui sotto, credo che debba buttare ArrayIndexOutOfBoundsException
, ma sorprendentemente sta gettando IllegalArgumentException
invece:
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] + " ");
}
}
Qualcuno può aiutarmi e fatemi sapere se mi sbaglio?
Il commento nella sezione del codice dice "OutOfMemoryError". Intendevi 'IllegalArgumentException'? –