Генерация исключений и создание своих типов исключений

Генерация исключений и создание своих типов исключений

@ProgHelpBot
  1. Генерация исключений и оператор raise
  2. Создание своих типов исключений

Генерация исключений и оператор 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)


← Обработка разных типов исключений

→ Списки

Report Page