Les exceptions en C++ n'ont à peu près rien à voir avec les exceptions en Java, hormis le principe général. Déjà, le fait qu'en C++, elles ne soient pas déclarées dans le prototype de la fonction rend leur utilisation très pénible, contrairement à Java.
Il y a un ensemble des types pouvant être levé comme exception par une fonction. Par défaut, cet ensemble est "ouvert sur tout type". Mais il est possible de spécifier cet ensemble.
En C++, les "options" par défaut vont "toujours" dans le sens de la simplicité et des performances optimales. À prendre avec des pincettes :)
En l'occurrence, spécifier l'ensemble des types d'exceptions pouvant être levées implique la mise en place d'un mécanisme supplémentaire. Java impose toutes sortes de ce genre de mécanismes (introspection et autres) alors qu'en C++ le développeur "choisi".
Une autre alternative est de préciser les exceptions pouvant être levées dans la documentation de la fonction.
[^] # Re: Je n'aime pas la SFML
Posté par Space_e_man (site web personnel) . En réponse à la dépêche SDL ou SFML ? Ne choisissez plus, prenez Gamedev Framework (gf). Évalué à 2.
Il y a un ensemble des types pouvant être levé comme exception par une fonction. Par défaut, cet ensemble est "ouvert sur tout type". Mais il est possible de spécifier cet ensemble.
→ http://en.cppreference.com/w/cpp/language/except_spec
En C++, les "options" par défaut vont "toujours" dans le sens de la simplicité et des performances optimales. À prendre avec des pincettes :)
En l'occurrence, spécifier l'ensemble des types d'exceptions pouvant être levées implique la mise en place d'un mécanisme supplémentaire. Java impose toutes sortes de ce genre de mécanismes (introspection et autres) alors qu'en C++ le développeur "choisi".
Une autre alternative est de préciser les exceptions pouvant être levées dans la documentation de la fonction.