2008-11-08 12 views

Respuesta

7

Herb Sutter parece dar buenos consejos here. Él no sabe de un buen uso y dice que algunos casos en los que parece ser útil realmente no funcionan.

2

uncaught_exception se puede utilizar en destructores, para determinar si se están ejecutando en el contexto de una excepción (donde un lanzamiento finalizará el programa). No estoy en desacuerdo con que la filosofía sea levemente defectuosa, pero depende del uso que usted haga de las excepciones: si su excepción es un error recuperable, puede ser más conveniente tratar de solucionarlo en lugar de intentar que otra parte del código intente lidiar con eso como lo haría normalmente.

También es útil si tiene un código que requiere una excepción activa (esto es raro, pero ocasionalmente tiene una biblioteca de control de excepciones que usará throw; para obtener la excepción actual, pero eso causará una terminación si no hay ninguna, para que uncaught_exception se pueda utilizar para determinar si se cancelará (y si es así, ¡posiblemente arrojar una excepción!). Un ejemplo son las nuevas instalaciones de excepción, que también son una parte de boost.

Cuestiones relacionadas