我的程序发现错误,我不知道如何解决
问题描述
所以我试图在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维)数组。当您尝试访问它时,它将提供索引超出绑定的异常。如果您知道尺寸,则必须使用该尺寸启动它。
除此之外,请检查您的问题的评论。这应该可以帮助您自己解决这些问题。