2016-02-26 78 views
1

当我点击WASD我的元素应该朝某个方向走。JAVA - 在默认情况下抛出异常

我用switch case语句处理它。

但是,如果用户点击其他密钥怎么办?我将无法获得新的职位。

我可以在默认情况下抛出一些异常,然后在try {...} catch {...}之后执行吗?

下面是我的代码:

private boolean checkPos(String c) { 
    int newPosX, newPosY; 

    switch(c.toUpperCase().charAt(0)){ 
    case 'W': 
     newPosX = oldPosX + 1; 
     break; 
    case 'A': 
     newPosY = oldPosY() - 1; 
     break; 
    case 'S': 
     newPosX = oldPosX() - 1; 
     break; 
    case 'D': 
     newPosY = oldPosY() + 1; 
     break; 
    default: 
     //throw exception??? 
     return false; 
    } 

    System.out.println("input:" + c.toUpperCase().charAt(0)); 
    System.out.println("OLD POSITION: (" + oldPosY() + ";" + oldPosX() + ")"); 
    System.out.println("NEW POSITION: (" + newPosY + ";" + newPosX + ")"); 
} 

有人可以给我一个忙吗?

+1

你以前使用过这类导航的游戏用户,什么都这些程序做?他们是否抛出异常? –

+0

你可能什么都不做。这意味着除了W,A,S或D以外的任何其他键都不会调整位置。 –

+0

什么都不做?! – aribeiro

回答

2

抛出一个异常似乎是一个非常糟糕的方式来做到这一点,因为它们是昂贵的,应该只在需要时才使用,而应该设置默认情况下告诉用户他们的输入是无效的,并循环回去问为新的输入。大概是不需要

default: System.out.println("Invalid data"); 
requestPos(); // which i presume will bring you back to checkpos with more data 
break; 

打印出的无效部分,但是这取决于你的游戏它可能是不错的通知

相关问题