5

このコードがあるとします:

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,), {})
4

3 に答える 3