M06L13Semana 4~5 h
L13 — Errores como diseño (CC cap. 7)
~5 h · Semana 4
Los errores son flujo de control y UX para quien llama tu API . 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
- Cero
catchvacíos. - Errores nombrados con contexto.
- Tests demuestran fallos esperados.
Errores comunes
- String errors everywhere.
- Loguear y re-lanzar sin añadir info.