关于抛出异常可能是一个非常简单的回答问题

时间:2017-04-20 09:51:12

标签: java exception try-catch illegalargumentexception

这应该可以轻松快速地回答。它是关于抛出异常,我对该主题的理解很少(因为我是新手)。

下面的代码代表了我的简单迷宫游戏中最重要的方法'程序。在这个方法中,我(显然)枚举了可能的用户键盘命令,并通过调用其他子方法给出了执行它们的指令。显然,我希望所有键盘输入都没有帮助"," 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); }
    }
  }

1 个答案:

答案 0 :(得分:0)

其他{   System.err.printf(“错误:无法找到命令\'%s \'。\ n要查找有效命令列表,请输入'help'。\ n”,action);

抛出IllegalArgumentException;     } 这将记录消息,然后通过抛出IllegalArgumentException异常退出方法