首页 > 解决方案 > 我无法捕捉 InputMismatchException

问题描述

我得到了我想要的 InputMismatchException 错误,但无法捕捉它。(我这样做只是为了学习它)有人可以帮助我吗?

package GameProject;
import java.util.*;
public class Execute {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
      Scanner scan=new Scanner(System.in);
      boolean enemySelected=false;
      boolean characterSelected=false;
      do {              
          System.out.println("Choose your character!");
          System.out.println("1-Knight\n2-Tank\n3-Warrior");
          int choosenCharacter=scan.nextInt();
              try{

                if(choosenCharacter==1|| choosenCharacter==2||choosenCharacter==3) {
                    characterSelected=true;
                }   
            
              }
              catch(InputMismatchException   e) {
                
                 System.out.println("Choosen character doesn't exists.Try again!");
                
              }   
               
              
      }while(characterSelected==false);
      
    }

}

标签: java

解决方案


这里:

int choosenCharacter=scan.nextInt();

这需要进入 try 块!

在可能导致异常的表达式之后进行尝试没有帮助。可以抛出的代码需要用 try/catch括起来。


推荐阅读