Практические примеры обработки исключений

Пользовательский ввод

Представьте , что вы хотите, чтобы пользователь , чтобы ввести номер через input . Вы хотите убедиться, что ввод является числом. Вы можете использовать try / за except для этого:

в то время как True: try: nb = int (input ('Введите число:')) break, кроме ValueError: print ("Это не число, попробуйте еще раз.")

Примечание: Python 2.x будет использовать raw_input вместо; функция input существует в Python 2.x , но имеет различную семантику. В приведенном выше примере, input также будет принимать такие выражения, как 2 + 2 , которая является числом.

Если входные данные не могут быть преобразованы в целое число, ValueError поднимается. Вы можете поймать его с except . Если исключение не возникает, break выскакивает из цикла. После цикла, nb содержит целое число.

Словари

Представьте , что вы итерация список последовательных целых чисел, как range(n) , и у вас есть список словарей d , который содержит информацию о том, что можно сделать , когда вы столкнетесь с некоторыми особыми целыми числами, скажем , пропустить d[i] последующие.

 d = [{7: 3}, {25: 9}, {38: 5}]

for i in range(len(d)):
    do_stuff(i)
    try:
       dic = d[i]
       i += dic[i]
    except KeyError:
       i += 1

 

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