首页 > 解决方案 > 获取数组长度时出错抛出异常

问题描述

我目前对此功能有疑问。我收到 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

标签: javaarraysexceptionmethods

解决方案


你的问题是它getSongsArray可以抛出一个异常并且这没有被你的main-function 捕获。
解决方案很简单:捕获错误消息;

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错误的具体问题!


推荐阅读