Tôi đã làm việc trên mảng ngày hôm nay và đột nhiên tôi bắt gặp một trường hợp ném ngoại lệ không mong muốn.Phương thức Arrays.copyOfRange trong java ném ngoại lệ không chính xác
Nếu bạn nhìn vào đoạn code dưới đây, tôi nghĩ rằng nó phải ném ArrayIndexOutOfBoundsException
, nhưng đáng ngạc nhiên nó được ném IllegalArgumentException
thay vì:
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] + " ");
}
}
Ai có thể giúp tôi và cho tôi biết nếu tôi nhầm?
Nhận xét trong phần mã của bạn cho biết 'OutOfMemoryError'. Ý của bạn là 'IllegalArgumentException'? –