en regardant du code, je suis tombé sur:
throw /*-->*/new std::exception ("//...
et j'ai toujours pensé que vous n'avez pas besoin / que vous ne devriez pas utiliser new
ici.
Quelle est la bonne manière, les deux sont-ils OK, si oui, y a-t-il une différence?
BTW d'après ce que je peux voir en "grepping" avec PowerShell, les bibliothèques boost ne l'utilisent jamais throw new
.
PS aussi j'ai trouvé du code CLI qui utilise throw gcnew
. Est-ce que ça va?
System::Exception
est généralement une référence à un objet managé sur le tas de récupération de place. J'ai toujours jeté gcnew
et attrapé avec System::Exception ^
. Bien sûr, j'utilise également finally
tout le temps en C ++ / CLI, bien que je ne me mélange pas souvent avec des exceptions C ++ dans le même try
bloc, je ne sais pas pourquoi.
throw gcnew
serait utile par exemple. si vous voulez que le code managé intercepte votre exception. Quelqu'un peut-il me corriger là-dessus?