Control de errores

Acabo de leer en el blog beautifulcode, una interesante entrada de Michael Feathers sobre el control de errores.

El post comienza con éste párrafo, que traduzco libremente: ...œEl control de errores es un poco cómo discutir quién saca la basura. Todos sabemos que hay que hacerlo, pero no dedicamos demasiado tiempo en pensar en cómo hacerlo....

Habla sobre trusted zones (zonas de confianza), en éstas zonas de nuestro código, no deben existir comprobaciones, únicamente la lógica de lo que estemos desarrollando, de ésta forma conseguimos un código más limpio y mantenible.
Si desarrollas librerías o frameworks, como no tienes control sobre cómo van a ser utilizados, sólo puedes hacerlo de forma confiada tus zonas de confianza no pueden ser muy amplias. Mientras si desarrollas una aplicación, debes tratar de separar el control de errores todo lo que sea posible de la lógica de negocio. El control de errores debe ser una cuestión de diseño, no algo de última hora.

Vamos, que por lo que parece utilizar trusted zones es una idea similar al diseño por contrato, pero sin contrato (sin precondiciones, invariantes o postcondiciones), y así evitar la programación defensiva para tener mejor código, más ...œbeautiful... :)