não é possível (em C ++) capturar todas as exceções de maneira portátil. Isso ocorre porque algumas exceções não são exceções em um contexto C ++. Isso inclui coisas como divisão por zero erros e outras. É possível invadir e, assim, obter a capacidade de gerar exceções quando esses erros ocorrerem, mas não é fácil e certamente não é fácil acertar de maneira portátil.
Se você deseja capturar todas as exceções de STL, pode fazer
try { ... } catch( const std::exception &e) { ... }
O que permitirá que você use e.what()
, que retornará a const char*
, o que pode lhe informar mais sobre a exceção em si. Essa é a construção que mais se parece com a construção Java, sobre a qual você perguntou.
Isso não ajudará se alguém for estúpido o suficiente para lançar uma exceção que não é herdada std::exception
.