Module (92%)
Section (17%)

Встроенные исключения

Мы собираемся показать Вам краткий список самых полезных исключений. Может показаться странным, называть "полезной" вещь или явление, которое является явным признаком неудачи или проблемы. Как Вы знаете, если что-то может пойти не так, оно пойдет не так.

Исключения являются такими же рутинными и нормальными вещами, как и любой другой аспект жизни программиста.

 

Для каждого исключения мы покажем:

  • его имя;
  • его местоположение в дереве исключений;
  • краткое описание;
  • краткий фрагмент кода, показывающий обстоятельства, при которых может возникнуть исключение.
 

Есть много других исключений для изучения - у нас просто нет времени, чтобы просмотреть их все в этом курсе.

ArithmeticError

Расположение: BaseException ← Exception ← ArithmeticError

Описание: абстрактное исключение, включающее в себя все исключения, вызванные арифметическими операциями, такими как деление на ноль или недопустимый тип аргумента

AssertionError

Расположение: BaseException ← Exception ← AssertionError

Описание: конкретное исключение, вызываемое инструкцией assert, когда ее аргумент оценивается как False, None, 0 или пустой строкой

Пример кода:

from math import tan, radians angle = int(input('Enter integral angle in degrees: ')) # we must be sure that angle != 90 + k * 180 assert angle % 180 != 90 print(tan(radians(angle)))

BaseException

Расположение: BaseException

Описание: самое общее (абстрактное) из всех исключений Python - все остальные исключения включены в него; Можно сказать, что следующие две ветви except эквивалентны:except: и except BaseException:.

IndexError

Расположение: BaseException ← Exception ← LookupError ← IndexError

Описание: конкретное исключение, возникающее при попытке доступа к элементу несуществующей последовательности (например, элементу списка)

Пример кода:

# the code shows an extravagant way # of leaving the loop list = [1, 2, 3, 4, 5] ix = 0 doit = True while doit: try: print(list[ix]) ix += 1 except IndexError: doit = False print('Done')