Existe alguma vantagem para jogar outra coisa que um std :: exception (ou tipos de derivados)

Existe alguma vantagem ou usa casos para lançar outra coisa que um std :: exception (ou um tipos de derivativos).

Por exemplothrow 1; outhrow "error";

Em outros termos, por que o padrão c ++ permite isso.

questionAnswers(5)

yourAnswerToTheQuestion