编写Java程序,编写自定义异常类封装将棋子落在格子中已有棋子的异常
返回本章节
返回作业目录
需求说明:
完善控制台版五子棋,判断用户所下棋子的位置,是否已经存在棋子,如果已经存在,则抛出用户自定义异常,提示用户该位置已经有棋子。
实现思路:
创建用户自定义异常类GoBangException,该类继承自Exception父类,在该类定义一个无参的构造器和一个String类型形参的构造器,在该构造器调用父类有参构造器,并将该构造器中的String类型参数,传递给父类构造器。
在GoBang类中创建验证棋盘(x,y)处是否存在棋子的方法check(int x,int y),如何存在则抛出异常GoBangException对象。
在下棋方法playChess(int x,int y)中首先调用check(int x,int y),然后再进行正常的下棋。
实现代码:
public class GoBangException extends Exception { //自定义异常
public GoBangException(){ }
public GoBangException(String message){
super(message); //调用父类有参构造器
}
}
private void check(int x,int y) throws GoBangException{ //验证棋盘(x,y)处是否已有棋子
if(board[x][y].equals("▇")){
throw new GoBangException("对不起该坐标["+x+"]["+y+"]已经有棋子");
}
}
public void playChess(int x,int y) throws ArrayIndexOutOfBoundsException{ //下棋
check(int x,int y) ; //验证棋盘(x,y)处是否已有棋子
board[x][y]="▇";
showBoard();
}
public static void main(String[] args) {
…
try{ playChess(x, y); }
catch(ArrayIndexOutOfBoundsException e){ System.out.println("所放棋子横纵坐标的范围在0~9"); }
}
本文来自博客园,作者:明金同学,转载请注明原文链接:https://www.cnblogs.com/vmuu/p/15663584.html
公众号:【明金同学】