Il n'est pas possible (en C++) d'attraper toutes les exceptions de manière portable. Cela est dû au fait que certaines exceptions ne sont pas des exceptions dans un contexte C++. Cela inclut des erreurs telles que la division par zéro et autres. Il est possible d'y bricoler pour obtenir la possibilité de lancer des exceptions lorsque ces erreurs se produisent, mais ce n'est pas facile à faire et certainement pas facile à faire correctement de manière portable.
Si vous voulez attraper toutes les exceptions de la STL, vous pouvez faire
try { ... } catch( const std::exception &e) { ... }
Cela vous permettra d'utiliser e.what()
, qui renverra un const char*
, ce qui peut vous en dire plus sur l'exception elle-même. C'est la construction qui ressemble le plus à la construction Java que vous avez demandée.
Cela ne vous aidera pas si quelqu'un est assez stupide pour lancer une exception qui n'hérite pas de std::exception
.
1 votes
Same as Comment construire un wrapper C++ Dll qui capture toutes les exceptions ?
4 votes
Notez que la plupart des crashes ne sont pas causés par des exceptions en C++. Vous pouvez attraper toutes les exceptions, mais cela ne préviendra pas de nombreux crashes.
0 votes
Ce que vous cherchez peut-être si vous êtes arrivé ici: stackoverflow.com/a/32799720/1599699 man7.org/linux/man-pages/man2/sigaction.2.html man7.org/linux/man-pages/man7/signal.7.html