Java tiene compiler checked exceptions. Cuando hice la transición a C++, me enteré de que no cuenta con excepciones marcadas. Al principio, seguí usando el manejo de excepciones, porque es una gran característica. Sin embargo, después de un tiempo lo abandoné, porque llegué a una situación , cada función podría arrojar una excepción. Como solo un pequeño porcentaje de las funciones que escribo pueden arrojar excepciones (digamos un 25% como máximo), encontré la sobrecarga de hacer un manejo de excepciones para funciones que no pueden arrojar nada inaceptable.¿Cómo trabajar con excepciones sin marcar?
Debido a esto, estoy realmente sorprendido de que haya muchos desarrolladores que prefieren las excepciones sin marcar. Por lo tanto, tengo curiosidad por saber cómo manejan este problema. ¿Cómo se puede evitar la sobrecarga de hacer un manejo de excepción innecesario en caso de que el idioma no admita excepciones marcadas?
Observación: Mi pregunta se aplica igualmente a C++ y C#, y probablemente a todos los demás lenguajes que no cuentan con el control de excepción comprobado por el compilador.
No todas las funciones pueden arrojar. Las funciones declaradas 'noexcept' no pueden lanzarse (y si lo intentan, se llamará a std :: terminate()). – Shirik