例外をスローすることは、ユーザーが別のプログラマーである場合にユーザーに何かを伝える最良の方法であるのだろうかと思います。Python:この例では正しいユースケースを例外として投げていますか?
私はテキストベースのゲームを作成するための小さなライブラリを開発しています(Dwarf Fortressと思うが、非常に簡単です)。もちろん、私はものが地図の中で動くようにしたい。それはとてもシンプルで、docstringは非常に完成しているので、うまく読むはずです。
def move(self, tile):
"""Move the object to a tile.
That means: unlink the piece from its current tile and link it
to the new tile.
Raise CharacterIsNotOnATileError if piece didn't already
have an associated tile, CharacterIsNotOnThisBoardError if
the destinity tile is not on the same board as the current tile,
OutOfBoard error if destinity tile is falsey (most probably
this means you're tring to move somewhere outside the map)
"""
if tile.piece is not None:
raise PositionOccupiedError(tile)
if not self.home_tile:
raise PieceIsNotOnATileError
if self.home_tile.board is not tile.board:
raise PieceIsNotOnThisBoardError
if not tile:
raise OutOfBoardError
self.home_tile.piece = None
tile.piece = self
この構造は悪いですか?私はそれがうまく読み込んだと思う:ユーザーが自分の作品を移動しようとしたとき、彼が行うことができます。
try:
character.move(somewhere)
except PositionOcuppiedError:
character.punish # cause i'm in hardcore
except OutOfBoardError:
character.kill # cause we were in a floating world and the
# character just fell off
いくつかのより多くのロジックがコードはなく、何かをするをしようと、このように実装ライブラリーにありますできない場合は例外がスローされます。これでいい?あるいは、エラーコード(整数など)を返す必要があります。
非常に面白い読み込み。どうもありがとうございました! – joaquinlpereyra