Throw - «terminate called after throwing an instance of 'char const*'»

Throw - «terminate called after throwing an instance of 'char const*'»

par Ulysse Oscar Faure,
Number of replies: 2

Bonjour, 

J'ai voulu programmer simplement un programme utilisant un throw, dans le cadre d'une fonction qui calcule l'inverse d'un nombre proposé par celui qui éxécute le programme. Lorsque le nombre entré vaut 0, le programme lance un string d'erreur, qui est identifié (try) et attrappé par le catch(string erreur). Le programme compile, pourtant, à son éxecution, si l'utilisateur rentre 0, au lieu d'éxecuter le bloc 'catch' le terminal affiche "terminate called after throwing an instance of 'char const*' ". D'où vient l'erreur ?

J'ai essayé de lancer un int et un char et tous deux fonctionnent : le bloc 'catch' est éxecuté. Mais pas avec throw "..".

In reply to Ulysse Oscar Faure

Re: Throw - «terminate called after throwing an instance of 'char const*'»

par Raffaele Ancarola,

Par défaut ".." n'est pas de type std::string mais de type const char*, chaine de charactère basique du language C.
C'est seulement quand on spécifie que ".." est une string alors le devient.

Essaye: throw string("..");