編寫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"); }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章