Встроенные исключения
Мы собираемся показать Вам краткий список самых полезных исключений. Может показаться странным, называть "полезной" вещь или явление, которое является явным признаком неудачи или проблемы. Как Вы знаете, если что-то может пойти не так, оно пойдет не так.
Исключения являются такими же рутинными и нормальными вещами, как и любой другой аспект жизни программиста.
Для каждого исключения мы покажем:
- его имя;
- его местоположение в дереве исключений;
- краткое описание;
- краткий фрагмент кода, показывающий обстоятельства, при которых может возникнуть исключение.
Есть много других исключений для изучения - у нас просто нет времени, чтобы просмотреть их все в этом курсе.
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')