Tecmilenio
Doing LMS • Sección 5
LMS Doing 0 respuestas 0 respuestas

Excepciones en Python

Fundamentos de Programación para Negocios

Garantizando la continuidad operativa a través del código

Panel Docente: Cátedra Activa con Cuadernillo Doing LMS (Sección 5)
Receptor Webhook: http://localhost:3000/api/webhooks/objectives

1. ¿Qué son las Excepciones?

  • Python genera automáticamente un objeto con información sobre un error ocurrido y su causa.
  • Evita que el programa se bloquee o se detenga abruptamente en medio de una operación.
  • Permite acciones de mitigación: mostrar mensajes al usuario, buscar alternativas o limpiar recursos.
Visión de Negocios: Imagina la logística de un restaurante; si un ingrediente se agota (error), no cierras las puertas del local inmediatamente. Utilizas un plan alternativo (excepción) para ofrecer otra opción al cliente sin detener la operación.

2. ¿Por qué son necesarias?

  • Se manejan utilizando bloques try-except.
  • El elemento sospechoso de fallar se coloca en el bloque try. Si falla, el control pasa al bloque except.
Necesidad Comercial: En un punto de venta, si falla la conexión con el banco, la terminal no debe apagarse por completo. Debe atrapar el fallo y permitir reintentar o usar efectivo.

3. Estructura de la Excepción


try:
    # Código a ejecutar
    # Este bloque podría contener errores operativos
except <tipo de error>:
    # Maneja la excepción
    # Se ejecuta cuando el try lanza un error
else:
    # Se ejecuta cuando NO hay errores en el bloque try
finally:
    # Esta sección del código SIEMPRE se ejecutará
                

Sintaxis base para el manejo de incidentes.

Dinámica: IA para Reglas de Negocio

Abre tu cuadernillo en e ingresa el prompt que se menciona en tu IA de preferencia seleccionando una industria (restaurante, banco, retail, salud, etc.):

Cuadernillo Activo 0 respuestas recibidas 05:00

Ejemplos de todos

Esperando respuestas en el cuadernillo.
Al presionar "Consultar y Analizar con Gemini" se proyectará aquí el resumen general y las 3 participaciones.

6. El bloque 'finally'

  • Asegura que ciertas tareas críticas de cierre se completen independientemente de si hubo error o no.
  • Obligatorio en ERPs y Nube: Cerrar conexiones a bases de datos o servidores de terceros (SAT, pasarelas de pago).
  • Previene agotar recursos del servidor y generar sobrecostos.

try:
    print("Conectando al servidor del SAT...")
    # Operación de facturación
except Exception:
    print("Error al timbrar la factura.")
finally:
    print("Cerrando la conexión al servidor de forma segura.")
                

7. Dinámica: 5 Usos Críticos de 'finally'

Abre tu cuadernillo Doing LMS en el campo de finally y describe un escenario empresarial donde este bloque sea imprescindible.

Cuadernillo • Finally 0 respuestas recibidas 05:00

5 Ejemplos de 'finally'

Esperando respuestas de los alumnos en el campo de 'finally'.
Al presionar "Consultar y Seleccionar 5 Ejemplos con Gemini" aparecerán aquí los 5 botones con sus nombres.

8. Cascada de Errores

  • Los usuarios pueden incurrir en varias excepciones al mismo tiempo.
  • Regla de oro: Atrapar primero errores específicos y dejar los generales al final.

def dividir(dividendo, divisor):
    try:
        resultado = round(dividendo / divisor, 2)
        print(resultado)
    except ZeroDivisionError:
        print("No se puede dividir por cero.")
    except TypeError:
        print("Pon un número válido.")
    finally:
        print("Operación finalizada.")
                

9. Errores Críticos (1/3)

ZeroDivisionError

División entre cero (ej. calcular rentabilidad sin ventas).


try:
    resultado = 10 / 0
except ZeroDivisionError:
    print("¡Error! No es válida la división entre cero.")
                

TypeError

Operaciones con tipos de datos incompatibles.


try:
    print(50.18 + "Fernando")
except TypeError:
    print("No se pueden concatenar distintos tipos de datos")
                

9. Errores Críticos (2/3)

IndexError

Acceder a un índice fuera de rango (ej. listas de inventario).


try:
    lista = [1, 2, 3]
    print(lista[10])
except IndexError:
    print("Índice fuera de rango")
                
Ejemplo Operativo: Si un cliente solicita el turno #10 pero solo hay 3 pedidos en la lista activa, atrapar IndexError previene que la terminal de punto de venta colapse.

9. Errores Críticos (3/3)

ValueError & KeyError

Valores incorrectos o claves inexistentes en diccionarios (ej. buscar un SKU que no existe).


try:
    diccionario = {"a": 1, "b": 2}
    print(diccionario["c"])
except KeyError:
    print("Clave inexistente, revisa tu diccionario")
                

try:
    precio = int("gratis")
except ValueError:
    print("ValueError: No se puede convertir texto no numérico")
                

10. Excepciones Personalizadas

  • Para Python un retiro sin fondos no es un error de código, pero para el negocio sí.
  • Utilizamos raise para detener el flujo y levantar una alerta comercial.

class InventarioAgotadoError(Exception):
    pass

inventario_actual = 0

if inventario_actual == 0:
    raise InventarioAgotadoError("Operación denegada: No hay stock en almacén.")
                

Cierre y Entrega de la Actividad

Continúa en tu cuadernillo interactivo en Doing LMS para completar la sesión formativa:

1 Completa tu Cuadernillo

Responde en Doing LMS:

  • 6 preguntas de opción múltiple.
  • 1 pregunta abierta final.
2 Descarga en PDF

Al terminar, haz clic en:

Botón "Descargar PDF"
En el encabezado del cuadernillo.
3 Sube a Canvas LMS

Sube el archivo PDF como tu evidencia final de la sesión.

Entrega individual obligatoria.
Ubicación de Entrega en Canvas LMS:
Tareas ➔ Actividad 4 ➔ Cuadernillo Excepciones
1 / 3
Participación Destacada

Nombre del Alumno

"Cita del alumno..."
ℹ️ Mensaje