Java程序在异常后不继续

Java程序在异常后不继续,java,Java,我创建了一个异常,表示列已满,当程序抛出此异常时,它只会在该点停止,这有什么问题?我认为您需要放入一个catch块来处理异常,然后在Java程序由于意外错误抛出异常时移动程序,或者通过您的业务流,异常被引发到调用它的方法 它会一直上升,直到达到以下两种情况之一: 如果异常到达catch块,则异常将被停止并由应用程序代码处理:执行一些日志记录,警告用户,甚至忽略它 您的场景:如果未达到捕获块,应用程序将退出,并显示错误状态代码!想一想,当异常到达主方法时,什么也找不到了这就是你的问题 如果希望应用

我创建了一个异常,表示列已满,当程序抛出此异常时,它只会在该点停止,这有什么问题?我认为您需要放入一个
catch
块来处理异常,然后在Java程序由于意外错误抛出异常时移动程序,或者通过您的业务流,异常被引发到调用它的方法

它会一直上升,直到达到以下两种情况之一:

  • 如果异常到达
    catch
    块,则异常将被停止并由应用程序代码处理:执行一些日志记录,警告用户,甚至忽略它
  • 您的场景:如果未达到捕获块,应用程序将退出,并显示错误状态代码!想一想,当异常到达主方法时,什么也找不到了这就是你的问题
  • 如果希望应用程序继续运行,必须在代码的某些部分提供一个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();
    }