Рубрики
Без рубрики

#День 14 – Исключения в Python

Сегодня мы поговорим о встроенных исключениях в Python. Хотя вы можете поймать любое исключение … Tagged с 100daysOfCode, Python, Codenewbie, Programming.

Ежедневное программирование-контент (37 серии деталей)

Сегодня мы поговорим о встроенных исключениях в Python.

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

try:
    # code
    pass
except Exception as e:
    # code
    pass

Это похоже на дикую карту, то есть он может завоевать любое исключение. Это хорошо для некоторых случаев, но предположим, что вы создаете пользовательский интерфейс или какой -либо API и хотите дать более описательное сообщение пользователю. Вы также можете справиться с конкретными исключениями. Мы обсудим несколько общих встроенных исключений ниже. Мы обсудим, что они означают, посмотрим на примеры, которые поднимают их и обрабатывают их, используя попытку … кроме пункта. Некоторые из них довольно эксплуатационны, но мы все равно будем их проходить

ZerodivisionError

Причина

Эта ошибка повышается, когда мы пытаемся разделить число на 0.

print(10/0)

Сообщение об ошибке

ZeroDivisionError: division by zero

Обрабатывать ошибку

try:
    print(10/0)
except ZeroDivisionError:
    print("Tried to divide a number by 0")

Импортеррор

Причина

Эта ошибка повышается, когда мы пытаемся импортировать библиотеку или модуль, который не был установлен или не существует

import randomLibrary
from random import randomLibrary

Сообщение об ошибке

Первый оператор позволит привести к следующей ошибке

ModuleNotFoundError: No module named 'randomLibrary'

Второй оператор позволит привести к следующей ошибке

ImportError: cannot import name 'randomLibrary' from 'random'

Обрабатывать ошибку

Оба могут быть пойманы одинаково

try:
    from random import randomLibrary
except ImportError:
    print("Could not find Library/Module")

try:
    import randomLibrary
except ImportError:
    print("Could not find Library/Module")

Filenotfounderror

Причина

Эта ошибка поднимается при попытке открыть файл, который не существует

with open("nonExistingFile.txt") as f:
    print(f)

Сообщение об ошибке

FileNotFoundError: [Errno 2] No such file or directory: 'nonExistingFile.txt'

Обрабатывать ошибку

try:
    with open("nonExistingFile.txt") as f:
        print(f)
except FileNotFoundError:
    print("Could not find the file")

Тип ошибки

Причина

Эта ошибка повышается при использовании встроенной функции на неправильном типе данных

var1 = 10
var2 = "string"
print(var1 + var2)

Мы пытаемся добавить строку и целое число, которое поднимает тип и

Сообщение об ошибке

TypeError: unsupported operand type(s) for +: 'int' and 'str'

Обрабатывать ошибку

try:
    var1 = 10
    var2 = "string"
    print(var1 + var2)
except TypeError:
    print("You tried an operation on different datatypes")

Ошибка утверждения

Причина

Эта ошибка поднимается оператором Assert в вашем коде.

assert 10 == 0

Когда выражение является ложным, ошибка поднимается

Сообщение об ошибке

AssertionError

Да, вот и все

Обрабатывать ошибку

try:
    assert 10 == 0
except:
    print("Assertion Error Raised")

Ошибка атрибута

Причина

Эта ошибка повышается, когда ссылается несуществующий атрибут класса

class test:
    def __init__():
        print("Initialized")

print(test.func())

Сообщение об ошибке

AttributeError: type object 'test' has no attribute 'func'

Обрабатывать ошибку

class test:
    def __init__():
        print("Initialized")

try:
    print(test.func())
except AttributeError:
    print("Attribute doesn't exist")

Индексерр

Причина

Эта ошибка вызвана, когда вы пытаетесь индексировать список с индексом, который не существует или не в диапазоне

lst = [1,2,3,4]
print(lst[5])

Сообщение об ошибке

IndexError: list index out of range

Обрабатывать ошибку

try:
    lst = [1,2,3,4]
    print(lst[5])
except:
    print("Index is out of range")

Keyerror

Причина

Это похоже на ошибку индекса, но вызвано, когда ссылка сделана на несуществующий ключ словаря

dictionary = {'key1': "value1"}
print(dictionary["key2"])

Сообщение об ошибке

KeyError: 'key2'

Обрабатывать ошибку

try:
    dictionary = {'key1': "value1"}
    print(dictionary["key2"])
except:
    print("Key doesn't exist in dictionary")

Ежедневное программирование-контент (37 серии деталей)

Оригинал: “https://dev.to/rahulbanerjee99/day14-exceptions-in-python-4095”