typestar

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

  1. ErrorCarritoVacio hereda de Exception en una línea.
  2. raise aborta la compra con un tipo específico y atrapable.
  3. Quien llama lo maneja aparte de los errores genéricos.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 5 de 7 en Iteradores, errores y archivos; paso 48 de 72 en Fundamentos del lenguaje.

← Anterior Siguiente →