创建自定义Java异常

时间:2018-09-24 14:01:39

标签: java custom-exceptions

The assignment

因此,我设置了基础知识。我们需要创建一个由用户指定大小的数组。制作完数组后,用户必须用整数值填充数组。然后,该程序应按照链接图像中2号的规定执行算术运算。我又创建了两个数组,一个保留用于求和的答案,另一个保留用于除法的答案。现在的问题是,当您需要对数组中的最后一个数字进行加法或除法运算时,我会得到一个IndexOutOfBoundsException,因为在最后一个加或除之后没有值。他们将其设置为使其能够通过异常,因为本实验全部涉及异常并创建自定义异常。但是我需要两个例外的帮助。如果用户在数组中输入非整数值,则第一个例外。第二个是IndexOutOfBoundsException异常。我不知道该怎么做。我将代码添加到下方

import java.util.Scanner;
import java.util.Arrays;

public class Driver {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int arrSize = 0;
        int num = 0;

        System.out.println("Enter array size");
        arrSize = input.nextInt();

        int[] numbers = new int[arrSize];
        int[] sum = new int[arrSize];
        int[] divide = new int[arrSize];

        for (int i = 0; i < numbers.length; i++) {
            System.out.println("Enter number");
            num = input.nextInt();
            numbers[i] = num;
        }

        for (int q = 0; q < numbers.length; q++) {
            sum[q] = numbers[q] + numbers[q+1];
            divide[q] = numbers[q] / numbers[q+1];
        }

        System.out.println(Arrays.toString(sum));
        System.out.println(Arrays.toString(divide));
    } 
}

1 个答案:

答案 0 :(得分:1)

这应该可以帮助您扫描整数值。

try{
    System.out.print("Enter an integer: ");
    int number = input.nextInt();  
    }
    catch (InputMismatchException ex) {
        System.out.println("Incorrect input: an integer is required)");
        //It's also possible to throw your custom Exception here, like "throw new CustomException();"
    }

关于IndexOutOfBoundsException,只需在您希望该异常发生的地方周围写一个try catch块,然后抛出您自己的自定义异常即可。

try{
    ...
}catch(IndexOutOfBoundsException e){
    throw CustomException2();
}