no es posible (en C ++) capturar todas las excepciones de manera portátil. Esto se debe a que algunas excepciones no son excepciones en un contexto de C ++. Esto incluye cosas como la división por cero errores y otros. Es posible hackear y, por lo tanto, obtener la capacidad de lanzar excepciones cuando ocurren estos errores, pero no es fácil de hacer y ciertamente no es fácil hacerlo de manera portátil.
Si desea capturar todas las excepciones STL, puede hacerlo
try { ... } catch( const std::exception &e) { ... }
Lo que le permitirá usar e.what()
, lo que devolverá un const char*
, que puede darle más información sobre la excepción en sí. Esta es la construcción que se asemeja a la construcción de Java, que más preguntaste.
Esto no te ayudará si alguien es lo suficientemente estúpido como para lanzar una excepción que no hereda std::exception
.