j'ai déclaré une méthode comme ceci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
void TBidule::Check()
  throw(EBiduleError*)
{
  if (PasBon)
    throw new EBiduleError("Dommage !"); 
}
Tout va bien, cela fonctionne, cela permet d'avoir un code clair et indique la necessité de gérer les exceptions

Mais depuis j'ai un gros problème dans C++ Builder 2007 !
Lorsque je fais "entrer", il insère mon retour à la ligne (normal) et une parenthèse "}" comme si il voulait fermer un bloc qui n'existe pas !
j'ai retiré mes spécifications d'exception throw(...), et je n'ai plus de } parasite !

Problème de Syntaxe ?
Bug de l'Editeur ?

En attendant, j'ai supprimé mes throw, cela conserve la notion mais sans le contrôle du compilateur
En fait, je me préoccupe plus d'avertir la necessité de gérer une exception que de limiter le déclenchement d'exception

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
void TBidule::Check()
//  throw(EBiduleError*)
{
  if (PasBon)
    throw new EBiduleError("Dommage !"); 
}


Questions Annexes :
1- * ou pas * donc new ou pas new
2- Comment est géré le Constructeur de Copie des EBiduleError ?