|Lanza y captura una excepción personalizada en un flujo realMedio
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 10:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

Lanza y captura una excepción personalizada en un flujo real

Medio10 pts·Funciones
ruleRestricciones
  • radio_button_unchecked
    Define UserValidationError heredando de Exception
  • radio_button_unchecked
    Lanza UserValidationError con raise

Enunciado

Implementa UserValidationError (hereda de Exception) y la función process_user(user_data).

UserValidationError acepta un argumento field en su constructor que indica qué campo falta.

process_user(user_data) recibe un dict y debe:

  1. Verificar que existen las claves "name" y "email". Si falta alguna, lanzar UserValidationError(field).
  2. Si ambas existen, retornar {"processed": True, "name": user_data["name"], "email": user_data["email"]}.
  3. Capturar la excepción y retornar {"processed": False, "missing_field": e.field}.
process_user({"name": "Ana", "email": "ana@mail.com"})
# {"processed": True, "name": "Ana", "email": "ana@mail.com"}

process_user({"name": "Ana"})
# {"processed": False, "missing_field": "email"}

process_user({})
# {"processed": False, "missing_field": "name"}
Restriccionesexpand_more
  • Dificultad: Medio
  • Completa todos los test cases para obtener los 10 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar print() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
Lanza y captura una excepción personalizada en un flujo real — Medio | Coding Challenges · Coding Challenges