gpt4 book ai didi

java - 我们可以使用 "catch"来处理具有特定值的 OutOfBoundsException 吗?

转载 作者:行者123 更新时间:2023-11-30 07:56:33 26 4
gpt4 key购买 nike

我正在学习 Java 中的异常。我遇到了以下问题:

String bigstring = myscanner.nextLine();
String[] splited = bigstring.split("\\s+");
try {
smallstring1 = splited[0];
smallstring2 = splited[1];
smallstring3 = splited[2];
} catch(java.lang.ArrayIndexOutOfBoundsException exc) {
smallstring3 = null;
}

如果用户只想输入 2 个单词,这将起作用。

如果他想输入一个字怎么办?

我们能否以某种方式指定一个在冒号后出错的值?

喜欢:

java.lang.ArrayIndexOutOfBoundsException: 2

java.lang.ArrayIndexOutOfBoundsException: 1

我们能否以某种方式在 try/catch block 中使用(对于此示例)这个“2”或“1”?

最佳答案

java.lang.ArrayIndexOutOfBoundsException 不是设计为可恢复的异常。它传达了一个编程错误。
因此,与其试图了解导致捕获问题的索引,不如确保不会发生异常。

在您的情况下,您应该在尝试获取数组的值之前检查数组的大小。

这是一个例子:

    int arraySize = splited.length;

if (arraySize == 3){
smallstring1=splited[0];
smallstring2=splited[1];
smallstring3=splited[2];
}

else if (arraySize == 2){
smallstring1=splited[0];
smallstring2=splited[1];
}

else if (arraySize == 1){
smallstring1=splited[0];
}

关于java - 我们可以使用 "catch"来处理具有特定值的 OutOfBoundsException 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42012035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com