Введение
Пользовательские исключения определяются классами.
class NetworkError(Exception):
pass
Исключения всегда наследуются от Exception.
Обычно они являются пустыми классами. Используйте pass для тела класса.
Вы также можете создать иерархию своих исключений.
class AuthenticationError(NetworkError):
pass
class ProtocolError(NetworkError):
pass
Упражнение 4.11: Определение пользовательского исключения
Часто считается хорошей практикой для библиотек определять свои собственные исключения.
Это делает легче различать между исключениями Python, возникающими в ответ на общие ошибки программирования, и исключениями, которые специально вызывает библиотека, чтобы сигнализировать о конкретной проблеме использования.
Измените функцию create_formatter() из предыдущего упражнения так, чтобы она вызывала пользовательское исключение FormatError, когда пользователь указывает неправильное имя формата.
Например:
>>> from tableformat import create_formatter
>>> formatter = create_formatter('xls')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "tableformat.py", line 80, in create_formatter
raise FormatError(f"Unknown table format {name}")
tableformat.FormatError: Unknown table format xls
>>>
Резюме
Поздравляем! Вы завершили лабораторную работу по определению исключений. Вы можете практиковаться в других лабораторных работах в LabEx, чтобы улучшить свои навыки.