В Python, исключения являются классами, которые наследуются от базовых классов исключений, таких как BaseException
, Exception
или других специализированных исключений. Создание собственных исключений позволяет вам обрабатывать ошибки в вашем приложении более эффективно. В этой статье мы рассмотрим, как создать собственные исключения и использовать их в вашем коде. 😊
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Определение собственного исключения
Для создания собственного исключения нужно определить новый класс, который наследует от базового класса Exception
или другого подходящего класса исключения. Например:
1 2 | class MyCustomException(Exception): pass |
Теперь вы можете создавать экземпляры этого класса и вызывать их как исключения:
1 | raise MyCustomException( "Это мое собственное исключение" ) |
Добавление дополнительной информации к исключению
Вы можете добавить дополнительную информацию к вашему исключению, определив метод __init__
в вашем классе исключения.
1 2 3 4 5 6 | class MyCustomException(Exception): def __init__( self , message, extra_info): super ().__init__(message) self .extra_info = extra_info raise MyCustomException( "Произошла ошибка" , { "code" : 400 , "time" : "12:34" }) |
Теперь при обработке исключения можно получить доступ к дополнительной информации:
1 2 3 4 5 | try : raise MyCustomException( "Произошла ошибка" , { "code" : 400 , "time" : "12:34" }) except MyCustomException as e: print (f "Сообщение об ошибке: {e}" ) print (f "Дополнительная информация: {e.extra_info}" ) |
Использование собственных исключений в вашем коде
Теперь, когда вы создали собственное исключение, вы можете использовать его для обработки ошибок в вашем коде. Вот пример функции, которая использует собственное исключение для обработки ошибки:
1 2 3 4 5 6 7 8 9 10 | def divide_numbers(a, b): if b = = 0 : raise MyCustomException( "Деление на ноль невозможно" , { "a" : a, "b" : b}) return a / b try : result = divide_numbers( 10 , 0 ) except MyCustomException as e: print (f "Сообщение об ошибке: {e}" ) print (f "Дополнительная информация: {e.extra_info}" ) |
В этом примере функция divide_numbers
вызывает собственное исключение, если делитель равен нулю. Когда мы вызываем функцию в блоке try
, исключение перехватывается и обрабатывается в блоке except
.
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
Заключение
Создание собственных исключений в Python является простым и эффективным способом обработки ошибок в вашем коде. Определите свой класс исключения, наследуя его от базового класса исключений, и используйте его для обработки ошибок, специфичных для вашего приложения. Это позволит вам писать более чистый и надежный код. 😃
Добавить комментарий