Bonjour,
Ma question concerne la détermination du type d'une exception. Supposons que je link mon programme avec une librairie statique que je ne peux pas modifier. Afin de ne pas planter lamentablement à l'execution, je me dis que je voudrais catcher des exceptions possibles.
Si l'exception est du à une division par 0 ou par une mauvaise utilisation d'un pointeur nul, on peut tout à fait penser qu'il est justifié de continuer le programme une fois l'erreur détéctée. Par contre, si le code dans lequel se produit l'erreur ne fais pas explicement un throw d'une exception comme std::runtime_exception, comment connaitre le type d'exception.
En pratique, je fais:
Code :
- try
- {
- malibrariecall( mes_arguments, ... );
- }
- catch( std::runtime_error & e )
- {
- //... bla bla bla
- }
- catch( std::exception & e )
- {
- //... bla bla bla
- }
- catch( ... )
- {
- // si passe ici, c'est que je ne connais pas le
- // type de l'exception que je traite
- //... bla bla bla
- }
|
Si le code dans la librarie fais une division par 0, alors l'exception qui est catchée n'est pas une eception standard. Peut on savoir de quel type d'exception il s'agit?
Merci.