Siempre me encuentro luchando con esto ... tratando de encontrar el equilibrio correcto entre intentar / atrapar y que el código no se convierta en este lío obsceno de pestañas, corchetes y excepciones lanzados de nuevo a la pila de llamadas como una papa caliente. Por ejemplo, tengo una aplicación que estoy desarrollando en este momento que usa SQLite. Tengo una interfaz de base de datos que abstrae las llamadas de SQLite, y un modelo que acepta las cosas que entran / salen de la base de datos ... Entonces, si ocurre una excepción de SQLite, debe lanzarse al modelo (que lo llamó ), quién tiene que pasarlo a quien llamó AddRecord / DeleteRecord / lo que sea ...
Soy fanático de las excepciones en lugar de devolver códigos de error porque los códigos de error pueden ignorarse, olvidarse, etc., mientras que una Excepción esencialmente tiene que ser manejada (concedido, podría atrapar y seguir de inmediato ...) Estoy seguro de que tiene que haber una mejor manera de lo que tengo ahora.
Editar: debería haber redactado esto un poco diferente. Entiendo volver a tirar como diferentes tipos y tal, lo redacté mal y es mi culpa. Mi pregunta es ... ¿cómo se mantiene mejor el código limpio al hacerlo? Simplemente comienza a sentirse extremadamente abarrotado para mí después de un tiempo.