Рубрики

Python | Набор 5 (обработка исключений)

До сих пор мы изучали базовый питон от набора 1 до 4 ( набор 1 | набор 2 | набор 3 | набор 4 ).
Если вы новичок, то, возможно, вы получаете много трассировок до сих пор. Трассировки генерируются из-за ошибок во время выполнения.

Как и другие языки, python также предоставляет ошибки времени выполнения с помощью метода обработки исключений с помощью try-exc. Некоторые из стандартных исключений, которые являются наиболее частыми, включают IndexError, ImportError, IOError, ZeroDivisionError, TypeError.

Исключение является базовым классом для всех исключений в Python. Вы можете проверить иерархию исключений здесь .

Попробуем получить доступ к элементу массива, индекс которого вышел за пределы, и обработать соответствующее исключение.

# Python-программа для обработки простых ошибок во время выполнения

  

a = [1, 2, 3]

try

    print "Second element = %d" %(a[1])

  

    # Выдает ошибку, поскольку в массиве всего 3 элемента

    print "Fourth element = %d" %(a[3]) 

  

except IndexError:

    print "An error occurred"

Выход:

Second element = 2
An error occurred

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

# Программа для обработки нескольких ошибок с одним оператором кроме

try

    a = 3

    if a < 4 :

  

        # бросает ZeroDivisionError для a = 3

        b = a/(a-3)

      

    # бросает NameError, если a> = 4

    print "Value of b = ", b

  
# обратите внимание, что скобки () необходимы здесь для нескольких исключений

except(ZeroDivisionError, NameError):

    print "\nError Occurred and Handled"

Выход:

Error Occurred and Handled

Если вы измените значение «а» на большее или равное 4, выход будет

Value of b =  
Error Occurred and Handled

Вывод выше таков, потому что как только python пытается получить доступ к значению b, происходит NameError.

Остальное
В python вы также можете использовать условие else в блоке try-exc, которое должно присутствовать после всех предложений кроме. Код входит в блок else, только если предложение try не вызывает исключение.

# Программа для отображения предложения else с помощью try-exc

  
# Функция, которая возвращает a / b

def AbyB(a , b):

    try:

        c = ((a+b) / (a-b))

    except ZeroDivisionError:

        print "a/b result in 0"

    else:

        print c

  
# Программа драйвера для проверки вышеуказанной функции

AbyB(2.0, 3.0)

AbyB(3.0, 3.0)

Выход для вышеуказанной программы будет:

-5.0
a/b result in 0

Возникновение исключения:
Оператор поднятия позволяет программисту принудительно вызвать конкретное исключение. Единственный аргумент в рейзе указывает на исключение, которое должно быть поднято. Это должен быть либо экземпляр исключения, либо класс исключения (класс, производный от Exception).

# Программа для изображения исключения

  

try

    raise NameError("Hi there"# Ошибка повышения

except NameError:

    print "An exception"

    raise  # Чтобы определить, возникло ли исключение или нет

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

Traceback (most recent call last):
  File "003dff3d748c75816b7f849be98b91b8.py", line 4, in 
    raise NameError("Hi there") # Raise Error
NameError: Hi there

Эта статья предоставлена Нихилом Кумаром Сингхом (nickzuck_007)

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Python | Набор 5 (обработка исключений)

0.00 (0%) 0 votes