Как говорится, бывают непредвиденные обстоятельства. Когда мы пишем программы, не всегда все проходит гладко. Например, когда мы собираемся пойти посмотреть фильм, мы сначала выходим, потом идем. в кино, а затем закончить просмотр. После просмотра фильма мы пошли за покупками и пошли домой. Однако после просмотра фильма мы обнаружили, что на улице шел дождь, и нам пришлось отменить наш план покупок и вернуться домой. Дождь здесь — нештатная ситуация, поэтому мы разработали программу. Пришло время добавить это решение для обработки исключений.
Давайте сначала рассмотрим проблему исключения . Код выглядит следующим образом:
число=int(input('Пожалуйста, введите число:'))if15/number>=3:print('ok')else:print('неправильно')
Результат вывода:
Введите число: 3ok Введите число: 15неправильно Введите число: 0Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>if15/number>=3:ZeroDivisionError:divisionbyzero
Когда введенный нами знаменатель равен 0, мы обнаружим, что программа сообщает об ошибке, что означает, что в программе, которую мы написали, возникла проблема. Поскольку мы не подумали, что делать, когда знаменатель равен 0, в программе произошло исключение. , поэтому мы написали программу. Вам необходимо учитывать некоторые нештатные ситуации, которые могут возникнуть. Давайте узнаем о нескольких распространенных нештатных ситуациях.
Это исключение, которое возникает при доступе к ключу словаря , когда значение ключа не существует.
Код выглядит следующим образом:
my_dict={'dotcpp':123}print(my_dict['dot'])
Исключение заключается в следующем:
Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>print(my_dict['dot'])KeyError:'dot'
Исключения такого типа чаще встречаются при изучении Python. Когда мы получаем доступ к элементам последовательности , этот механизм исключений срабатывает, когда значение индекса превышает диапазон. Код выглядит следующим образом:
my_list=[1,2,3,4,5]print(my_list[100])
Исключение заключается в следующем:
Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>print(my_list[100])IndexError:listindexoutofrange
В нашем списке всего 5 элементов, и это исключение будет выброшено, если доступ превысит лимит.
Это исключение генерируется, когда мы используем неопределенную переменную , код выглядит следующим образом:
name=['www.dotcpp,com']print('Существующее имя переменной:',name)print('Несуществующая переменная dotcpp:',dotcpp)
Исключение заключается в следующем:
Имя существующей переменной: ['www.dotcpp,com']Traceback(mostrecentcalllast):FileC:/Users/Qingyan/PycharmProjects/untitled1/teach/test.py,line3,in<module>print('Несуществующая переменная dotcpp: ',dotcpp)NameError:имя'dotcpp'не определено
Это исключение возникает, когда переданные данные не соответствуют указанному типу. Например, когда мы хотим сложить и вычесть два целых числа, и одно из них использует строковый тип, возникнет эта ошибка.
Код выглядит следующим образом:
a=10b='dotcpp'print(a+b)
Исключение заключается в следующем:
Traceback(mostrecentcalllast):FileC:/Users/test.py,line3,in<module>print(a+b)TypeError:unsupportedoperandtype(s)for+:'int'and'str'
Выше приведены некоторые из наиболее распространенных исключений. В процессе обучения мы можем столкнуться с ValueError, OSError, AttributeError и другими исключениями. Когда мы сталкиваемся с неизвестным нам исключением, мы можем запросить соответствующий контент через справочный документ.