En C ++, puede especificar que una función puede o no generar una excepción mediante el uso de un especificador de excepción. Por ejemplo:
void foo() throw(); // guaranteed not to throw an exception
void bar() throw(int); // may throw an exception of type int
void baz() throw(...); // may throw an exception of some unspecified type
Dudo de usarlos realmente por lo siguiente:
- El compilador realmente no aplica los especificadores de excepción de manera rigurosa, por lo que los beneficios no son excelentes. Idealmente, le gustaría obtener un error de compilación.
- Si una función viola un especificador de excepción, creo que el comportamiento estándar es terminar el programa.
- En VS.Net, trata el lanzamiento (X) como un lanzamiento (...), por lo que el cumplimiento del estándar no es fuerte.
¿Crees que deberían usarse los especificadores de excepción?
Responda "sí" o "no" y proporcione algunas razones para justificar su respuesta.