Garantizando la continuidad operativa a través del código
http://localhost:3000/api/webhooks/objectives
try-except.try. Si falla, el control
pasa al bloque except.
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.
Abre tu cuadernillo en e ingresa el prompt que se menciona en tu IA de preferencia seleccionando una industria (restaurante, banco, retail, salud, etc.):
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.")
Abre tu cuadernillo Doing LMS en el campo de finally y describe un escenario
empresarial donde este bloque sea imprescindible.
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.")
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.")
Operaciones con tipos de datos incompatibles.
try:
print(50.18 + "Fernando")
except TypeError:
print("No se pueden concatenar distintos tipos de datos")
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")
IndexError previene que la terminal de punto de venta colapse.
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")
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.")
Continúa en tu cuadernillo interactivo en Doing LMS para completar la sesión formativa:
Responde en Doing LMS:
Al terminar, haz clic en:
Sube el archivo PDF como tu evidencia final de la sesión.
Entrega individual obligatoria.http://localhost:3000/api/webhooks/objectives
Aparece en la URL de tu clase en Doing LMS o en el mapa de campos (.md).
Genera tu llave en Doing LMS: Mi perfil → Acceso por API → Crear.
El identificador de la sesión activa de cátedra.
✅ La clave se carga automáticamente desde el archivo .env (variable
GEMINI_API_KEY). No es necesario escribirla aquí. Para deshabilitarla o proteger
cuota, basta con detener el servidor o retirarla de .env.
Celda u objetivo del cuadernillo donde contestaron los alumnos (ej. 5 para Sección 5 de reglas de negocio).
Instrucción dada a Gemini para sintetizar todas las respuestas recibidas en este campo y proyectarlo en la diapositiva.
Campo del cuadernillo del cual se evaluarán y extraerán las 3 participaciones a mostrar en los botones.
Instrucción dada a Gemini para regresar las 3 participaciones que se mostrarán cada una en su respectivo botón.
Identificador de campo o número de objetivo donde contestaron sus ejemplos de finally.
Instrucción dada a Gemini para traer exactamente 5 ejemplos de diferentes alumnos con su nombre y texto.