首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java中的Arrays.copyOfRange方法抛出不正确的异常

java中的Arrays.copyOfRange方法抛出不正确的异常
EN

Stack Overflow用户
提问于 2015-12-29 17:13:42
回答 3查看 4K关注 0票数 19

今天我正在处理数组,突然遇到了一个抛出意外异常的场景。

如果你看下面的代码,我想它一定抛出了ArrayIndexOutOfBoundsException,但令人惊讶的是它抛出了IllegalArgumentException

代码语言:javascript
复制
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] + " ");
   }
}

有没有人能帮助我,如果我弄错了就告诉我?

EN

回答 3

Stack Overflow用户

发布于 2015-12-29 17:19:28

您发送Integer.MIN_VALUE(-2147483648)作为起始范围。您可能打算发送0

票数 3
EN

Stack Overflow用户

发布于 2015-12-29 17:20:00

您面临的错误是MIN_VALUE = -2147483648 0x80000000,这是负的。或者u设置为0,即Arrays.copyOfRange(a, 0, 10);。它将允许您复制。

票数 2
EN

Stack Overflow用户

发布于 2015-12-31 14:36:22

java文档和实现之间缺少匹配

正如Eran解释的那样,我们可以看到,由于整数溢出,我们得到了一个IllegalArgumentException异常,而不是ArrayIndexOutOfBoundsException。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34507935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档