如果有indexOutOfBoundException
,是否可以突破循环?例如:
int v = 987;
int c = 783;
int[] someArray = new int[23];
do{
//do stuff
if(someArray[68] == indexOutOfBoundException){ // How can this be done?
break;
}
}while(v > c);
我知道这个someArray[68]
本身会抛出一个错误,但是你可以防止它成为一个错误而只是打破一个给定的循环吗?
答案 0 :(得分:2)
我认为你要问的是,在引发异常之前是否有办法摆脱循环。为此,您可以根据数组大小测试数组索引:
int v = 987;
int c = 783;
int[] someArray = new int[23];
do{
// do stuff
int arrayIndex = (some expression);
if (arrayIndex >= someArray.length) break;
int anotherValue = someArray[arrayIndex];
// do something else
}while(v > c);
答案 1 :(得分:1)
为什么这不应该很难。只需添加try catch。
int v = 987;
int c = 783;
int[] someArray = new int[23];
do{
//do stuff
int val;
try{
val = someArray[68];
}catch(Exception e) {
break;
}
// do some other operation with the val
}while(v > c);
顺便说一句,这只是滥用try catch,即使这是一个你不应该以任何方式使用它的解决方案。