El manejo de errores heredados tiende a seguir el método de que todas las funciones devuelven un código en función de éxito/falla. Verificará este código y manejará (si hay un error) de manera apropiada.¿Por qué es mejor lanzar una excepción en lugar de devolver un código de error?
Los lenguajes de programación modernos, sin embargo, siguen el modelo de excepción, donde si ocurre algo excepcional que no se puede manejar adecuadamente se produce una excepción, que sigue burbujeando hasta que se maneja.
Mi pregunta es ¿por qué nos hemos movido hacia el modelo de excepción? ¿Cuáles son las razones detrás de esto? ¿Por qué es mejor?
Explicaciones/enlaces serían muy apreciados.
no dejaste tu lista el hecho de que usar excepciones permite try/catch (MyCustomException ex) para que tú/(otros desarrolladores) puedan agregar try/catch que solo captará el nuevo tipo de excepción que has creado. –
Ese es un punto excelente. Me gusta que las capas puedan ignorar excepciones y dejarlas pasar. Su punto es que puede ser muy detallado para el tipo de excepción individual (suponiendo que esté utilizando un lenguaje que admita excepciones por su tipo). –