有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java捕获具有布尔返回类型的方法中的错误

我试图实现一个十六进制的游戏,使用一些我得到的接口。部分实现是通知用户和程序,玩家试图将一个棋子放置在已经包含棋子的棋盘坐标(2D数组列表)上。这被视为非法行为。因此,我试图在placePiece()方法中捕获异常,该方法将一个工件分配给某些给定坐标。Piece是一个枚举类,它包含三个元素:BLUE、RED和UNSET。最初,我将板设置为未设置。我需要一种方法来通知用户和系统位置ReadyTakeNexException,如果坐标包含任何其他部分。未设置。有人能帮我做这件事吗,因为目前这个方法只是跳转到最后一个返回true;代码行

下面是我的makeMove()方法的代码:

 public boolean placePiece(Piece colour, MoveInterface move) throws PositionAlreadyTakenException, InvalidPositionException, InvalidColourException
{
       int x = move.getXPosition();
       int y = move.getYPosition(); 

       try {
        if(this.board [y-1][x-1] == Piece.UNSET){
         this.board[y-1][x -1] = colour;  
         return true; 
        }

    } catch (Exception e){
        return false; 
    }    
    return true; 
}

共 (2) 个答案

  1. # 1 楼答案

    我想你在找这样的东西

    public boolean placePiece(Piece colour, MoveInterface move) throws PositionAlreadyTakenException, InvalidPositionException, InvalidColourException
    {
           int x = move.getXPosition();
           int y = move.getYPosition(); 
    
           try {
            if(this.board [y-1][x-1] == Piece.UNSET){
             this.board[y-1][x -1] = colour;  
             return true; 
            }
    
        } catch (Exception e){
            SOPL ("error" + e.getMessage(); 
        }    
        return false; 
    }
    
  2. # 2 楼答案

    试试catch (Throwable t)

    但这仍然是一种糟糕的风格。只有在异常情况下才应引发异常。已经声明的位置是应用程序逻辑