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

Osibka Utverzdenia Python



Когда программа Python сталкивается с непредвиденной ситуацией во время работы, она останавливает выполнение и возвращает исключение. В Python исключения и синтаксические ошибки — это две основные категории ошибок. Когда фрагмент кода Python, который является синтаксически допустимым, создает ошибку, это называется возникновением исключения/ошибки. Сообщение об ошибке в последней строке определяет точный тип исключения и содержит описание, помогающее при отладке, а стрелка указывает на строку или место, где произошло исключение. Перехват исключений и управление ими имеют решающее значение, чтобы избежать внезапного сбоя программы. Используйте другой способ выполнения кода. Например, когда возникает указанное исключение. В этом руководстве мы обсудим ошибку AssertionError и способы ее устранения в Python.

Что такое AssertionError в Python?

Ошибки утверждения — это концепция программирования, которая возникает, когда программист пишет или создает блок кода, используемый для объявления критерия или условия, которые должны быть удовлетворены перед запуском модуля. Как и любая ошибка Python, управление передается следующей строке кода, если условие, указанное при объявлении утверждения, было истинным. С другой стороны, если оно ложно, возникает ошибка или исключение, и программа останавливается. Оператор assert может использоваться в различных языках программирования с их специфическим синтаксисом, поскольку он не зависит от языка. Это подкласс или экземпляр класса Exception. Python AssertionError имеет следующий синтаксис:

Синтаксис: утвердить условие, error_message (необязательно)







Пример

В качестве входных данных мы введем возраст человека, и если он меньше нуля, консоль выдаст ошибку утверждения.





А что, если мы введем возраст меньше 0?





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



Как AssertionError работает в Python

Язык Python включает оператор assert, который можно использовать для генерации простых выходных сообщений об ошибках с логическими утверждениями. Когда оператор утверждения терпит неудачу, возникает «исключение» AssertionError. В Python классы исключений являются производными от класса BaseException. Класс BaseException, который также является базовым классом класса AssertionError, является источником класса Exception. Всегда должен быть соответствующий код обработки исключений, чтобы справляться с ошибкой утверждения утверждения, когда бы оно ни использовалось. Обработчик исключений по умолчанию в Python напечатает сообщение об ошибке, написанное программистом, но ошибка также может быть обработана или устранена без сообщения об ошибке.

Реализация AssertionError в Python

Ниже приведены несколько примеров AssertionError в Python:

Пример

В этом примере мы напишем программу на Python для отображения AssertionError в программе, которая находит площадь круга.

Значение радиуса «r» передается в качестве входных данных функции в предыдущей программе, созданной для нахождения площади круга. Затем оператор assert используется для определения того, находится ли предоставленное значение или радиус «r» ниже нуля, и если ему будет предоставлено отрицательное значение, будет возбуждено исключение. Площадь круга будет возвращена на основе значения радиуса «r», предоставленного функции. Сначала функция выполняется со значением r равным 3. Затем функция выполняется со значением 2,5. Ошибка AssertionError возникает, когда мы используем отрицательное значение «r», то есть «-1».

Давайте попробуем другой пример, чтобы отобразить возникновение ошибки утверждения.

Пример

В этом примере программа определит, является ли значение знаменателя отличным от нуля.

Сообщение об ошибке утверждения отображается в предыдущей программе. Мы создали две переменные (a и b), и целые значения задают переменные. Вторая переменная, то есть b , затем проверяется, чтобы увидеть, не равна ли она 0, с помощью утверждения утверждения. В противном случае печатается сообщение об ошибке. Если нет, отображается результат деления первого числа на второе значение. На предыдущем изображении показан результат работы программы.

Приложения AssertionError

Другие полезные способы использования ошибки утверждения включают в себя:

  • Утверждение помогает в оценке значений параметров
  • Утверждения помогают контролировать тип ввода и правильность этого значения.
  • Кроме того, утверждения помогают определить, неправильно ли использует интерфейс другой разработчик кода.
  • Утверждения помогают постоянно контролировать вывод программы.

Как мы можем избежать ошибок Assert в Python

  1. Флаг -O в программе Python может использоваться для отключения каждого оператора утверждения. Важно помнить, что операторы, следующие за оператором утверждения, не будут выполняться, если мы отключим операторы утверждения.
  2. Переменная среды также может установить флаг для отключения утверждений. В этой ситуации затронуты все процессы и приложения, которые используют или наследуют среду.
  3. В Python самый простой подход к предотвращению ошибок утверждений — обрабатывать их вручную. Если мы гарантируем, что поток управления программы перенаправляется так, что он не обращается к утверждениям утверждений, тогда нет никаких шансов на ошибки утверждений.

Обработка AssertionError

Помимо оператора утверждения, мы также можем обработать ошибку утверждения, используя следующие методы:

Обработка ошибки утверждения с помощью блоков Try-Except

Оператор assert определяет, равны ли значения. Блок try вызывает ошибку AssertionError, поскольку эти целые числа не равны. Команда печати выполняется после того, как блок исключений перехватил исключение. Здесь отображается вывод оператора печати из блока исключений. Ключевое слово повышения можно использовать для повторного вызова ошибки в блоке исключений, чтобы мы могли определить источник исключения. При возникновении исключения ключевое слово «поднять» вызовет ошибку и завершит программу. Это помогает поддерживать или вести учет/отслеживание существующего исключения.

Обработка AssertionError с помощью модуля трассировки

Когда код содержит несколько утверждений, модуль трассировки помогает определить точный источник ошибки.

Используя модуль трассировки, наш оператор печати может быть записан с заполнителями {}.

Кроме того, мы можем определить другие переменные для хранения позиции строки, имени файла, имени метода, а также текста/сообщения, в котором произошло исключение.

Объект трассировки называется tb. Мы используем два заполнителя: один для текста и один для позиции строки в операторе печати.

Три компонента инструкции «raise» — exc_type, exc_traceback и exc_value — возвращаются функцией sys.exc_info().

Обработка AssertionError с помощью оператора print

Чтобы вручную обработать исключение, мы можем использовать оператор «print» внутри блока исключений.

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

Вместо ошибки отображается краткое сообщение.

Вывод

В этом посте мы впервые увидели введение исключений в Python. Мы обсудили AssertionError, как это работает и как мы можем реализовать AssertionError в Python. Мы объяснили несколько преимуществ AssertionError и то, как их избежать. В последнем разделе этой статьи мы увидели, как мы можем обрабатывать AssertionError в Python, используя блоки Try-Except, модуль трассировки и оператор печати.