In C ++, è possibile specificare che una funzione può o non può generare un'eccezione utilizzando uno specificatore di eccezione. Per esempio:
void foo() throw(); // guaranteed not to throw an exception
void bar() throw(int); // may throw an exception of type int
void baz() throw(...); // may throw an exception of some unspecified type
Sono dubbioso sull'utilizzo effettivo di loro a causa di quanto segue:
- Il compilatore non impone gli specificatori di eccezioni in modo rigoroso, quindi i vantaggi non sono grandi. Idealmente, vorresti ricevere un errore di compilazione.
- Se una funzione viola uno specificatore di eccezione, penso che il comportamento standard sia terminare il programma.
- In VS.Net, tratta lancio (X) come lancio (...), quindi l'aderenza allo standard non è forte.
Pensi che dovrebbero essere usati gli specificatori di eccezione?
Rispondi con "sì" o "no" e fornisci alcuni motivi per giustificare la tua risposta.