Gestión de errores

Python intermedio para desarrolladores

Jasmin Ludolf

Senior Data Science Content Developer

Traceback de Pandas

Traceback que muestra código que devuelve un error intencionalmente

  • except, raise

  • Intenta anticipar cómo podrían ocurrir errores

Python intermedio para desarrolladores

Design thinking

  • ¿Cómo podrían usar nuestra función personalizada?
  • Prueba distintos enfoques
  • Detecta qué errores podrían ocurrir

Diferentes tipos de desplazamientos en la ciudad

Python intermedio para desarrolladores

Gestión de errores en funciones personalizadas

def average(values):
    # Calcular la media
    average_value = sum(values) / len(values)
    return average_value
Python intermedio para desarrolladores

¿Dónde podrían fallar?

  • average() espera una lista o conjunto
  • Dar más de un argumento 🛑
  • Usar el tipo de dato equivocado 🛑
Python intermedio para desarrolladores

¿Dónde podrían fallar?

sales_dict = {"cust_id": ["JL93", "MT12", "IY64"],
              "order_value": [43.21, 68.70, 82.19]}
print(average(sales_dict))

Traceback con TypeError

Python intermedio para desarrolladores

Gestión de errores previa

  • Flujo de control if, elif, else
  • Docstrings
Python intermedio para desarrolladores

try-except

def average(values):

try:
# Código que podría causar un error average_value = sum(values) / len(values) return average_value
except:
# Código a ejecutar si ocurre un error print("average() acepta una lista o un conjunto. Proporciona un tipo de dato correcto.")
Python intermedio para desarrolladores

raise

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
Python intermedio para desarrolladores

raise

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
else: # Run if an Exception occurs raise
Python intermedio para desarrolladores

raise TypeError

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
else: # Run if an Exception occurs raise TypeError("average() accepts a list or set, please provide a correct data type.")
Python intermedio para desarrolladores

Salida de raise TypeError

print(average(sales_dict))

Salida de TypeError con el mensaje personalizado para proporcionar el tipo de dato correcto

Python intermedio para desarrolladores

try-except vs. raise

try-except

  • Evita que se produzcan errores
  • Aún ejecuta el código siguiente

raise

  • Producirá un error
  • Evita ejecutar el código siguiente
Python intermedio para desarrolladores

¡Vamos a practicar!

Python intermedio para desarrolladores

Preparing Video For Download...