Python面向對象編程-自定義異常使用(一) 全球新資訊
發布時間:2023-04-22 10:44:55
來源:騰訊云
(資料圖片)
自定義異常可用于多種目的。
定義文件時,當文件的格式不正確時,我們可以拋出自定義異常來指示錯誤。
在編寫網絡應用程序時,如果網絡請求失敗,我們可以拋出自定義異常來指示錯誤。在編寫數據庫應用程序時,如果數據庫連接失敗,我們可以拋出自定義異常來指示錯誤。在編寫游戲時,如果玩家嘗試在不允許的情況下執行某個操作,我們可以拋出自定義異常來指示錯誤。下面是一個使用自定義異常的示例,它演示了如何在游戲中處理玩家錯誤操作:
class InvalidMoveError(Exception): def __init__(self, message): self.message = messageclass Game: def __init__(self): self.board = [["", "", ""] for i in range(3)] self.current_player = "X" def display_board(self): for row in self.board: print(row) def make_move(self, row, col): if row < 0 or row > 2 or col < 0 or col > 2: raise InvalidMoveError("Invalid move. Please choose a row and column between 0 and 2.") if self.board[row][col] != "": raise InvalidMoveError("Invalid move. That square is already taken.") self.board[row][col] = self.current_player if self.current_player == "X": self.current_player = "O" else: self.current_player = "X" def is_game_over(self): for i in range(3): if self.board[i][0] == self.board[i][1] == self.board[i][2] != "": return True if self.board[0][i] == self.board[1][i] == self.board[2][i] != "": return True if self.board[0][0] == self.board[1][1] == self.board[2][2] != "": return True if self.board[0][2] == self.board[1][1] == self.board[2][0] != "": return True return Falsegame = Game()while not game.is_game_over(): game.display_board() row = int(input("Enter row (0-2): ")) col = int(input("Enter column (0-2): ")) try: game.make_move(row, col) except InvalidMoveError as e: print("Error:", e.message)game.display_board()print("Game over!")上面的示例中,我們定義了一個名為 Game的游戲類,用于處理棋盤和游戲規則。我們還定義了一個名為 InvalidMoveError的自定義異常,用于處理玩家的無效移動。
在 make_move方法中,如果玩家選擇了無效的行或列,則拋出 InvalidMoveError。如果玩家選擇了已經被占用的方格,則也會拋出 InvalidMoveError。在 while循環中,我們不斷調用 make_move方法,并在出現異常時捕獲和處理異常。在異常處理程序中,我們將打印錯誤消息,告訴用戶出現了什么錯誤。
標簽:
AD
更多相關文章
- Python面向對象編程-自定義異常使用
- 霍山縣大化坪鎮: 茶鄉執法在行動,
- 兩亭超限站與兩亭交警中隊聯勤聯動
- 全球新動態:鳳縣行政審批服務局:
- 吉林通化:普法宣傳助力環境保護
- 全球微資訊!加快工業互聯網主導的
- 戈壁灘上建設施農業基地_世界簡訊
- 江西提升金融供給質效 引導更多金
- 世界今熱點:對股市造謠者“零容忍
- 壯鄉廣西邀客入桂“潮玩三月三”
- 河北武安:書香伴成長 全球觀天下
- 收評:滬指跌近2%險守3300點 兩市
- 中國旅游出行發展大會第三站走進昆
- 恩比德因右膝扭傷缺席G4戰籃網 最
- 快船官方:倫納德確定缺席系列賽G4-
- 掘金官方:約基奇今日對陣森林狼G3
- 快來圍觀!2023年海南“十佳”旅游
- 為您服務丨普陀圖書館周末有兩場活
- 焦點熱門:通脹破100%仍未減速!這一
- 經濟日報:對股市造謠者“零容忍”
- 天天速讀:智通ADR統計|4月22日
- 【天天聚看點】恒指夜期收盤(4.22)
- 我省 “畜”勢勃發 打造現代化“
- 營造高效透明的政務環境-環球熱點評
- 海西生態旅游推介會在溫州舉辦|訊息
- 浙江援青:促文化交流 助產業發展
- 全球頭條:都蘭:一季度農業農村經
- 快消息!海西:多措并舉支持經營主
- 【世界時快訊】增加小微企業信貸供
- 網紅“愛情公路”為鄉村振興插上翅







