Свои исключения

Старайтесь их не делать. Поищите в иерархии уже существующих наиболее подходящий.

Иногда специфика задачи требует свои исключения. Например, когда рассчетная задача и какой-то параметр (например, размер трещины) вдруг становится невозможным физически (отрицательным или слишком большим). Тогд имеет смысл ввести свое исключение. Но можно использовать ValueError.

Простейший пример: в исключении нужно только имя типа. Тогда наследуйтесь от Exception и ничего не изменяйте.

class MyException(Exception):
    pass

Использовать точно так же, как другие типы исключений.

Пример посложнее: добавим новое исключение HostNotFound, который содержит в себе имя хоста.

class HostNotFound(Exception):
    def __init__( self, host ):
        self.host = host
        Exception.__init__(self, 'Host Not Found exception: missing %s' % host)

использование:

try:
    raise HostNotFound("taoriver.net")
except HostNotFound, exc:
    # Handle exception.
    print exc               # -> 'Host Not Found exception: missing taoriver.net'
    print exc.host          # -> 'taoriver.net'

results matching ""

    No results matching ""