有没有更好的方法来处理 IndexOutOfBoundsException?

is there any better way to handel IndexOutOfBoundsException?

int sum(int[] arr,int size,int suma){
  if(size < 0) return suma; 

   return   sum(arr,size-1, suma+arr[size]);
}

这段代码工作正常,因为它在大小小于零时中断,但在调试时也会给出 java.lang.IndexOutOfBoundsException : Invalid array index: -1。 我还能做些什么来避免这种情况 IndexOutOfBoundsException?

怎么样:

public static int sum(int[] arr,int size,int suma){
   if (size < 1) return suma; 

   return   sum(arr,size-1, suma+arr[size-1]);
}

无论如何索引都不应该等于大小,因为索引从 0 开始。

数组的最小索引是0,所以你最后应该把arr[length - 1]加到最后的总和上。因此,如果长度为 0;

,则应停止递归
public static int sum(int[] arr, int length, int sum) {
    return length < 1? sum : sum(arr, length - 1, sum + arr[length - 1]);
}

演示:

int[] arr = { 1, 2, 3, 4, 5, 6 };
System.out.println(sum(arr, arr.length, 1000)); // 1021