mentre guardavo del codice mi sono imbattuto in:
throw /*-->*/new std::exception ("//...
e ho sempre pensato che non hai bisogno / non dovresti usare newqui.
Qual è il modo corretto, sono entrambi OK, in caso affermativo c'è qualche differenza?
A proposito, da quello che posso vedere mentre "grepping" con PowerShell boost le librerie non usano mai throw new.
PS inoltre ho trovato del codice CLI che usa throw gcnew. È ok?
System::Exceptionè generalmente un riferimento a un oggetto gestito nell'heap di Garbage Collection. Ho sempre lanciato gcnewe preso con System::Exception ^. Ovviamente uso finallysempre anche in C ++ / CLI, anche se spesso non si mescolano con le eccezioni C ++ nello stesso tryblocco, non sono sicuro del perché.
throw gcnewsarebbe utile ad es. se vuoi che il codice gestito catturi la tua eccezione. Qualcuno può correggermi su questo?