Lanzar excepciones propias en Python
Nombrar tus modos de falla con tu propia clase de excepción.
class ErrorCarritoVacio(Exception):
pass
def cobrar(carrito):
if not carrito:
raise ErrorCarritoVacio("nada que comprar")
if any(precio < 0 for precio in carrito.values()):
raise ValueError("precio negativo")
return sum(carrito.values())
try:
total = cobrar({})
except ErrorCarritoVacio as exc:
total = 0
Cómo funciona
ErrorCarritoVaciohereda deExceptionen una línea.raiseaborta la compra con un tipo específico y atrapable.- Quien llama lo maneja aparte de los errores genéricos.
Palabras clave y builtins usados aquí
anyasclassdefexceptforifpassraisereturnsumtry
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 308
- Tokens
- 73
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 44 segundos.
Paso 5 de 7 en Iteradores, errores y archivos; paso 48 de 72 en Fundamentos del lenguaje.