Python | Error de aserción

Error de aserción La 
aserción es un concepto de programación que se usa al escribir un código en el que el usuario declara que una condición es verdadera usando una declaración de afirmación antes de ejecutar el módulo. Si la condición es True , el control simplemente pasa a la siguiente línea de código. En caso de que sea falso , el programa deja de ejecutarse y devuelve la excepción  AssertionError .

La función de la declaración de afirmación es la misma independientemente del lenguaje en el que se implemente, es un concepto independiente del lenguaje, solo la sintaxis varía con el lenguaje de programación. 

Sintaxis de afirmación:  condición de afirmación,
mensaje_error (opcional)

Ejemplo 1: error de aserción con error_message.  

Python3

# AssertionError with error_message.
x = 1
y = 0
assert y != 0, "Invalid Operation" # denominator can't be 0
print(x / y)

Producción : 

Traceback (most recent call last):
  File "/home/bafc2f900d9791144fbf59f477cd4059.py", line 4, in 
    assert y!=0, "Invalid Operation" # denominator can't be 0
AssertionError: Invalid Operation

El controlador de excepciones predeterminado en python imprimirá el mensaje de error escrito por el programador, o simplemente manejará el error sin ningún mensaje. 
Ambas formas son válidas.

Manejo de la excepción AssertionError: 
AssertionError se hereda de la clase Exception, cuando ocurre esta excepción y genera AssertionError, hay dos formas de manejarlo, el usuario lo maneja o el controlador de excepciones predeterminado. 
En el Ejemplo 1, hemos visto cómo funciona el controlador de excepciones predeterminado. 
Ahora profundicemos en su manejo manual.

Ejemplo 2  

Python3

# Handling it manually
try:
    x = 1
    y = 0
    assert y != 0, "Invalid Operation"
    print(x / y)
 
# the errror_message provided by the user gets printed
except AssertionError as msg:
    print(msg)

Producción : 

Invalid Operation

Aplicaciones prácticas.  
Ejemplo 3: Prueba de un programa. 

Python3

# Roots of a quadratic equation
import math
def ShridharAcharya(a, b, c):
    try:
        assert a != 0, "Not a quadratic equation as coefficient of x ^ 2 can't be 0"
        D = (b * b - 4 * a*c)
        assert D>= 0, "Roots are imaginary"
        r1 = (-b + math.sqrt(D))/(2 * a)
        r2 = (-b - math.sqrt(D))/(2 * a)
        print("Roots of the quadratic equation are :", r1, "", r2)
    except AssertionError as msg:
        print(msg)
ShridharAcharya(-1, 5, -6)
ShridharAcharya(1, 1, 6)
ShridharAcharya(2, 12, 18)

Producción : 

Roots of the quadratic equation are : 2.0  3.0
Roots are imaginary
Roots of the quadratic equation are : -3.0  -3.0

Este es un ejemplo para mostrar cómo esta excepción detiene la ejecución del programa tan pronto como la condición de afirmación es Falsa. 

Otras aplicaciones útiles:  

  • Comprobación de valores de parámetros.
  • Comprobación de entrada/tipo válido.
  • Detectar abuso de una interfaz por parte de otro programador.
  • Comprobación de la salida de una función.

Publicación traducida automáticamente

Artículo escrito por thenoobcoder y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *