这应该可以轻松快速地回答。它是关于抛出异常,我对该主题的理解很少(因为我是新手)。
下面的代码代表了我的简单迷宫游戏中最重要的方法'程序。在这个方法中,我(显然)枚举了可能的用户键盘命令,并通过调用其他子方法给出了执行它们的指令。显然,我希望所有键盘输入都没有帮助"," status" ......" down"导致方法底部出现错误消息。
我知道我所拥有的东西是愚蠢的,没有任何意义,但那是因为我真的不知道在涉及抛出异常时我做了什么,而我懒得做任何严肃的阅读。所以如果有人能告诉我如何写下我想写的东西,我会很高兴。
public static void performAction(String action) throws IllegalArgumentException {
if (action.equalsIgnoreCase("help")) {
printHelp(); }
else if (action.equalsIgnoreCase("status")) {
printStatus(); }
else if (action.equalsIgnoreCase("board")) {
printBoard(); }
else if (((action.charAt(0) == 'S') || (action.charAt(0) == 's')) && ((action.charAt(1) == 'a') || (action.charAt(1) == 'A')) && ((action.charAt(2) == 'v') || (action.charAt(2) == 'V')) &&
((action.charAt(3) == 'e') || (action.charAt(3) == 'E')) && (action.charAt(4) == ' ')) {
String [] parts = action.split(" ");
String saveCommand = parts[0];
String fileName = parts[1];
try { saveGame(fileName); }
catch(IOException e) {
System.err.printf("Error: Could not save the current game configuration to \'%s\'.", fileName);
return; } }
else if (action.equalsIgnoreCase("left")) {
int a = getCurrentXPosition();
int b = getCurrentYPosition();
moveTo((a - 1), b); }
else if (action.equalsIgnoreCase("right")) {
int a = getCurrentXPosition();
int b = getCurrentYPosition();
moveTo((a + 1), b); }
else if (action.equalsIgnoreCase("up")) {
int a = getCurrentXPosition();
int b = getCurrentYPosition();
moveTo(a, (b - 1)); }
else if (action.equalsIgnoreCase("down")) {
int a = getCurrentXPosition();
int b = getCurrentYPosition();
moveTo(a, (b + 1)); }
else {
try {}
catch (IllegalArgumentException e) {
System.err.printf("Error: Could not find command \'%s\'.\nTo find the list of valid commands, please type 'help'. \n", action); }
}
}
答案 0 :(得分:0)
其他{ System.err.printf(“错误:无法找到命令\'%s \'。\ n要查找有效命令列表,请输入'help'。\ n”,action);
抛出IllegalArgumentException; } 这将记录消息,然后通过抛出IllegalArgumentException异常退出方法