VS n'implémente pas les exceptions ???

VS n'implémente pas les exceptions ??? - C++ - Programmation

Marsh Posté le 14-03-2004 à 16:19:09    

j'ai mis un throw dans mon code et VS .NET me sort un warning C4290 :
 
[Compiler Warning (level 3) C4290]
 
Spécification d'exception C++ ignorée sauf pour indiquer qu'une fonction n'est pas __declspec(nothrow)
 
Une fonction est déclarée avec une spécification d'exception, ce que Visual C++ accepte mais n'implémente pas. Le code avec spécification d'exception ignoré lors de la compilation peut nécessiter une nouvelle compilation et édition de liens pour pouvoir être réutilisé dans des versions ultérieures prenant en charge les spécifications d'exception.
 
Vous pouvez éviter cet avertissement par le pragma warning :
 
#pragma warning( disable : 4290 )
 
 
quoi il fait pas les exceptions ? c pas possible, y'a un truc que j'ai du mal comprendre là ...

Reply

Marsh Posté le 14-03-2004 à 16:19:09   

Reply

Marsh Posté le 14-03-2004 à 16:32:52    

Sisi ça fonctionne ;)
t'as fait quoi exactement ? bout de code ?

Reply

Marsh Posté le 14-03-2004 à 16:47:36    

.NET ou .NET 2003 ?
(en gros compilo 7 ou 7.1 ?)


Message édité par bjone le 14-03-2004 à 16:47:50
Reply

Marsh Posté le 14-03-2004 à 17:26:49    

On en a discuté ici :
http://forum.hardware.fr/forum2.ph [...] =0&print=0
VS gère les exceptions.
Ce qui n'est pas implémenté c'est la spécification d'exceptions :

Code :
  1. void toto() throw (MonException);


Le parser reconnait la syntaxe, mais ce code est sans conséquence, c'est comme s'il y avait :

Code :
  1. void toto();


Dans le premier cas, si une exception d'un type autre que MonException est déclenchée, unexpected est censée être appelée (ou ce qui a été indiqué via set_unexpected). VS n'implémente pas cette fonctionnalité, d'où le warning.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 14-03-2004 à 18:02:48    

ah ok je me disais aussi !
 
merci beaucoup les gars !

Reply

Marsh Posté le 14-03-2004 à 18:38:41    

c'est con ça, très con :/
le throw() ça n'existe donc pas ?

Reply

Marsh Posté le 14-03-2004 à 20:48:42    

si si, c'est juste qui si tu throw autre chose que ce qui est spécifié, l'exception unexpected n'est pas levée.... le set_unexpected() marche, mais ça fait rien...
 
et je viens d'essayer sur le 2003 avec le compilo 7.1, ça fait pareil...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed