我的程序发现错误,我不知道如何解决

来源:爱站网时间:2021-09-11编辑:网友分享
所以我试图在Java中编写UNO代码,我仍然在尝试生成卡片。我不太清楚这里的问题是什么,但由于某种原因,我的代码在我的方法中捕获了一个错误。我查了一下......

问题描述


所以我试图在Java中编写UNO代码,我仍然在尝试生成卡片。我不太清楚这里的问题是什么,但由于某种原因,我的代码在我的方法中捕获了一个错误。我已经检查了几次我的代码并且它不是语法错误,所以我合理地不知道它发生了什么。

我暂时停止编码,以便在你告诉我什么是错的之前我不会再创建错误,以便更容易修改它。请告诉我我做错了什么!

public class JavaUNO {
    public static void main(String[] args) throws Exception {
        boolean inProgress = false;
        boolean drawCard = false;
        String[][] playerDeck = {{}};
        byte playerDeckLength = 0;

        // MAIN OUTPUT
        try {
            // INITIALIZATION
            Scanner scan = new Scanner(System.in);

            // PROGRAM STARTING PROMPT
            System.out.println("> Deck:");

            // **PLAYER DECK INIT**
            try {
                System.out.println("> Cards Generated:");
                while (playerDeckLength  An uncaught error occured!");
                        System.out.println("> Location: Card Generation");
                    }
                    System.out.println("Type: " + playerDeck[playerDeckLength][0] + "; Color: " + 

playerDeck[playerDeckLength][1]);
                }
            } catch (Exception e) {
                System.out.println("");
                System.out.println("> An uncaught error occured!");
                System.out.println("> Location: Player Deck Init");
            }
        } catch (Exception e) {
            System.out.println("");
            System.out.println("> An uncaught error occured!");
            System.out.println("> Location: Main Output");
        }
    }
}

命令提示符:

> Deck:
> Cards Generated:

> An uncaught error occurred!
> Location: Card Generation

> An uncaught error occurred!
> Location: Player Deck Init

思路一:


您正在初始化一个空的二维字符串数组。代码尝试访问未分配的索引,因此我认为程序可能抛出IndexOutOfBounds异常

思路二:


似乎是很多代码,但很少有类/函数;)

首先尝试组织更好的代码,它将更容易调试,修改和维护它...我还邀请您阅读Java中的异常和异常处理,您将看到每次使用Exception导致很多问题 !

当然,我们中的一些人将能够使你的程序工作,但说实话,你只需要阅读更多,你就会成功:)

思路三:


你没有初始化你的数组,你可能会出现“IndexOutOfBounds”错误。尝试用这样的东西初始化你的数组:“String [] [] playerDeck = new String [7] [2];”。您还需要将支票从playerDeck[playerDeckLength][0] == "+4 Cards"更改为if (playerDeck[playerDeckLength][0].equalsIgnoreCase("+4 Cards"))

思路四:


问题是你初始化一个空(2维)数组。当您尝试访问它时,它将提供索引超出绑定的异常。如果您知道尺寸,则必须使用该尺寸启动它。

除此之外,请检查您的问题的评论。这应该可以帮助您自己解决这些问题。

上一篇:如何在Java中将TimeStamp转换为Date?

下一篇:用正则表达式java替换字符串

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载