Lección 13 de 20· M06

Hechas: 0/20(0%)

M06L13Semana 4~5 h

Ficha M06

L13 — Errores como diseño (CC cap. 7)

~5 h · Semana 4

Los errores son flujo de control y UX (experiencia de usuario) para quien llama tu API (interfaz de programación de aplicaciones). Tragar excepciones es deuda.

Objetivo

Aplicar CC cap. 7: excepciones con contexto, límites claros, sin catch {}; definir errores de dominio expresivos.

Pasos

1. Lectura (60 min)

CC cap. 7. Anota reglas sobre checked vs unchecked (adaptado a TS).

2. Auditoría (45 min)

Busca catch, throw new Error("error") genéricos.

3. Catálogo de errores (90 min)

export class LibroNoEncontradoError extends Error {
  constructor(public readonly id: string) {
    super(`Libro no encontrado: ${id}`);
    this.name = "LibroNoEncontradoError";
  }
}

O union de errores si prefieres sin excepciones (prepara L14).

4. Refactor llamadas (90 min)

Mensajes con datos; logs en frontera, no en cada línea.

5. Tests de error (45 min)

expect(() => ...).toThrow(LibroNoEncontradoError) o equivalente Result.

Hecho cuando

  1. Cero catch vacíos.
  2. Errores nombrados con contexto.
  3. Tests demuestran fallos esperados.

Errores comunes

  • String errors everywhere.
  • Loguear y re-lanzar sin añadir info.

Siguiente

L14 — Patrón Result tipado

←→