Java程序在异常后不继续
我创建了一个异常,表示列已满,当程序抛出此异常时,它只会在该点停止,这有什么问题?我认为您需要放入一个Java程序在异常后不继续,java,Java,我创建了一个异常,表示列已满,当程序抛出此异常时,它只会在该点停止,这有什么问题?我认为您需要放入一个catch块来处理异常,然后在Java程序由于意外错误抛出异常时移动程序,或者通过您的业务流,异常被引发到调用它的方法 它会一直上升,直到达到以下两种情况之一: 如果异常到达catch块,则异常将被停止并由应用程序代码处理:执行一些日志记录,警告用户,甚至忽略它 您的场景:如果未达到捕获块,应用程序将退出,并显示错误状态代码!想一想,当异常到达主方法时,什么也找不到了这就是你的问题 如果希望应用
catch
块来处理异常,然后在Java程序由于意外错误抛出异常时移动程序,或者通过您的业务流,异常被引发到调用它的方法
它会一直上升,直到达到以下两种情况之一:
catch
块,则异常将被停止并由应用程序代码处理:执行一些日志记录,警告用户,甚至忽略它请参见您已在
dropChecker
功能中设置了异常,但尚未处理该异常
因此,您需要做的是使用调用dropChecker
函数的Try Catch
来处理它
例如:
public void dropChecker (int column, String colour) throws GameException {
} else {
// Drop the piece as far as it will go. Find the first empty space, starting from the bottom
for (int y = HEIGHT - 1; y >= 0; y--){
String val = getElement(y, column);
if ((val).equals("empty")) {
setElement(y, column, colour);
} else {
throw new GameException("Column is full");
}
}
}
}
我不清楚你在问什么。在捕获异常的地方,程序继续执行。如果未捕获,程序将终止。你能不能请你的问题澄清一下你的问题?另请参见。请注意,
if(isGameActive=false)
等同于if(false)
。您应该改为使用:if(!isGameActive)
。
try {
dropChecker(0, "Green");
}
catch(GameException gameException) {
Toast.makeText(this, gameException.message.toString(), Toast.LENGTH_SHORT).show();
}