Empecé a usar excepciones de C++ de manera uniforme, y ahora me gustaría que el compilador (g ++) verifique que no haya "fugas de excepción". La decoración throw
debería hacer esto, como hace const
para constness de métodos de clase.¿Hay algún uso para la decoración de tiro de C++?
Bueno, no es así.
El uso de throw
sigue siendo documental, pero incluso puede ser peligrosamente engañoso si otros piensan que una función no puede arrojar otras excepciones que las enumeradas en su documentación.
Se puede persuadir a g ++ para que sea más estricto en su comprobación de tiro, es decir, realmente asegurándose de que una función decorada como throw()
nunca arrojará nada.
Editar: Encontrado this question manejando el tema ampliamente.
pregunta similar aquí: http://stackoverflow.com/questions/1037575/why-arent-exceptions-in-c-checked-by-the-compiler – Glen