は、私はこのコードを持って言う:単一の関数に対して例外タイプを宣言することは妥当ですか?
def wait_for_x(timeout_at=None):
while condition_that_could_raise_exceptions
if timeout_at is not None and time.time() > timeout_at:
raise SOMEEXCEPTIONHERE
do_some_stuff()
try:
foo()
wait_for_x(timeout_at=time.time() + 10)
bar()
except SOMEEXCEPTIONHERE:
# report timeout, move on to something else
はどのように機能するために例外型SOMEEXCEPTIONHERE
を選ぶのですか? condition_that_could_raise_exceptions
が同じ例外タイプを引き上げる危険性がないように、その関数に固有の例外タイプを作成することは妥当ですか?
wait_for_x.Timeout = type('Timeout', (Exception,), {})
Python 3.3では、組み込みの 'TimeoutError'を使うことができました。 – dan04