获取数组长度引发抛出错误时出错

时间:2020-04-30 21:59:02

标签: java arrays exception methods

我目前对此功能有疑问。我在getSongsArray(numSongs);中遇到numSongs的错误;说我需要抛出一个异常(未报告的异常Exception;必须被捕获或声明被抛出)。以下是我当前拥有的说明和代码。我只是一个女孩,在这个问题上苦苦挣扎了大约3个小时,而此时我已经绝望了。

说明: 编写一个名为getSongsArray的方法,该方法采用一个整数参数(numSongs), 返回一个字符串数组,并声明为抛出异常。如果 传递的参数为负值,引发异常。除此以外, 循环numSongs次,提示用户每次输入另一个名称 循环。返回此名称数组。

调用getSongsArray传递要返回的数组大小(任何整数)

public static void main(String[] args) 
    {
        Scanner scnr = new Scanner(System.in);
        System.out.println("How many songs would you like to enter?");
        int numSongs = scnr.nextInt();

        getSongsArray(numSongs);
    } //end main

    public static int getSongsArray(int numSongs) throws Exception 
    {
        if (numSongs <= 0) 
        {
            throw new Exception("Invalid Number");
        }
    } //end getSongsArray

1 个答案:

答案 0 :(得分:0)

您的问题是getSongsArray会引发异常,而您的main函数中没有捕获此异常。
解决方案很简单:捕获错误消息;

public static void main(String[] args) 
    {
        Scanner scnr = new Scanner(System.in);
        System.out.println("How many songs would you like to enter?");
        int numSongs = scnr.nextInt();
        try {
            getSongsArray(numSongs);
        } catch (Exception e){ 
            System.out.println("Error!");
        }
    } //end main

但是您仍然会遇到其他问题,因为您尚未完全完成任务。此处的帖子仅回答有关unreported exception错误的特定问题!