Генерация исключений и создание своих типов исключений
@ProgHelpBotГенерация исключений и оператор raise
Оператор raise используется когда необходимо вручную сгенерировать исключение.
try:
a = int(input())
b = int(input())
if b == 0:
raise Exception("Второе число не может быть равно 0")
print(a / b)
except ValueError:
print("ValueError")
except Exception as e:
print(e)
Результат, если вводится a = 2, b = 0:
Второе число не может быть равно 0
Создание своих типов исключений
Применяя наследование, можно создавать свои типы исключений.
class PersonAgeException(Exception):
def __init__(self, age):
self.age = age
def __str__(self):
return f"Возраст не может быть равен {self.age}"
class Person:
def __init__(self, name, age):
self.__name = name
minage, maxage = 0, 100
if minage <= age <= maxage:
self.__age = age
else:
raise PersonAgeException(age)
def display_info(self):
print(f"Name: {self.__name}, age: {self.__age}")
try:
alex = Person("Alex", 18)
alex.display_info() # Name: Alex, age: 18
alice = Person("Alex", -3) # Возраст не может быть равен -3
except PersonAgeException as e:
print(e)