编写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"); }
}

 

posted @ 2020-06-09 20:35  明金同学  阅读(56)  评论(0编辑  收藏  举报