class MyError(Exception):
pass
raise MyError("Произошла ошибка")
Данный код выбросит исключение MyError
с сообщением "Произошла ошибка". Исключение не будет перехвачено, и программа завершится с ошибкой. В консоли будет выведен traceback, указывающий на строку, где произошло исключение, а также тип и сообщение исключения.
Вопрос: Что произойдет при выполнении данного кода?
Ответ: Данный код выбросит исключение MyError
, которое является пользовательским исключением, унаследованным от базового класса Exception
.
Пояснение:
class MyError(Exception): pass
: Эта строка определяет новый класс исключения с именем MyError
. Exception
– это встроенный класс исключения в Python, от которого обычно наследуют все пользовательские исключения. pass
означает, что класс MyError
не имеет никакой дополнительной логики или атрибутов.raise MyError("Произошла ошибка")
: Эта строка вызывает исключение MyError
. В скобках после MyError
передается строка "Произошла ошибка", которая становится сообщением, связанным с исключением. Это сообщение можно будет получить при обработке исключения.Результат выполнения:
При запуске скрипта будет выброшено необработанное исключение MyError
. Python прекратит выполнение программы и выведет трассировку стека (traceback), показывающую, где произошло исключение. В трассировке стека будет указано, что исключение MyError: Произошла ошибка
было вызвано в строке raise MyError("Произошла ошибка")
.
Пример трассировки стека (возможный вид):
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
MyError: Произошла ошибка
Важно: Чтобы программа не завершалась аварийно, необходимо обработать это исключение с помощью блока try...except
.