Dans mon code, je souhaite lancer un message, de sorte qu'il apparaît à l'écran lorsqu'une entrée est détectée. Je voulais faire comme ça, mais ça n'a pas marché. Donc, je voudrais votre aide pour voir s'il y a quelque chose que je ne sais pas, ou si c'est une action illégale en C++.Lancer un const. * Dans un bloc Try-Catch
C'est là dans mon code le lancer apparaît (une classe mise en œuvre fonction membre)
//set the value of _s (seconds)
void Time::setSeconds(int s){
if (s > 60 || s < 0)
throw ("The value inside seconds has to be valid");
else
_s = s;
}
Et voilà comment je parviens à faire un simple bloc-catch try
try{
Time t(12,4,-12);
t.printStandard();
}catch(string const &a){
cerr << a;
}
Cependant , lorsque le programme est exécuté, j'obtiens le message d'erreur suivant:
terminate called after throwing an instance of 'char const*'
Aborted (core dumped)
Qui n'est évidemment pas e destiné.
Si vous jetez un 'const char *' ce que vous attrapez un 'std :: string'? – NathanOliver
Les conversions ne sont pas prises en compte pour la capture d'exception. –
La revendication "Utilisation de std :: invalid_argument (" text ... ") fonctionne correctement" semble concerner le code non représenté ici. –