Hello tout le monde.
Question aux pros du C++
Je découvre quelque chose qui me laisse pantois (et pose un sérieux problème sur un code existant que je reprend en main)
Voilà l'objet du délit:
Compilo : Visual C++ 6.0 (SP 2)
Code :
- try
- {
- int *ptr = 0;
- cout << "affectation d'un pointeur nul" << endl;
- *ptr = 0; // affecte la valeur 0 à un pointeur NULL -> violation d'accès
- }
- catch(...)
- {
- cout << "exception!" << endl;
- }
|
Sortie:
Citation :
affectation d'un pointeur nul
exception!
|
Questions:
Pourquoi je capture l'exception? De quel type est elle (j'en ai essayé un bon paquet y compris les types de base)? Comment je fais pour capturer la violation d'accès ou une autre erreur machine (parce que je tiens que la violation d'accès en soit réellement une)?
Je vous laisse imaginer les problèmes soulevés par ce code répandu dans l'ensemble du programme...
Message édité par slash33 le 21-02-2007 à 10:27:08