C++, ignorer exception et continuer de code?
Est-il un moyen de permettre l'exécution d'un mauvais bloc de code après qu'une exception de jetés?
Actuellement, mon code a une boucle while qui s'exécute en continu. Le code à l'intérieur de cette boucle, parfois, jette un vecteur en dehors de la plage d'erreur. J'ai été incapable de déterminer la cause de cette exception particulière, mais finalement, ça n'a pas beaucoup d'importance parce que le code à l'intérieur de la boucle while fait la même chose encore et encore et à la prochaine itération ne dépend pas de l'itération précédente en aucune façon.
Ce, après le code à l'intérieur de la boucle while se bloque, je voudrais que cela recommence à partir du haut de l'instruction while.
Est-il un moyen pour accomplir cette en C++? try/catch ne semble pas fonctionner dans cette situation.
Infos Supplémentaires:
J'aimerais juste prendre le code à l'intérieur de la boucle while, le faire dans son propre fichier exécutable, et de mettre le tout en boucle dans un script bash, mais il y a certaines données à chaque itération nécessite demeure statique et ça prend trop de temps de re-charger les données à chaque fois donc je suis obligé de faire mes infini boucle while en C++
catch
l'exception dans le champ d'application de la boucle et continuer à partir de là. Mais, vraiment, vous DEVEZ trouver la cause de votre problème.Pouvez-vous s'il vous plaît poster un peu de code pour regarder?. try{}catch(){} devrait être la norme, si vous voulez une application robuste
Les Exceptions sont exceptionnelles et doivent être manipulés. Même si vous ne pouvez pas éradiquer le problème.
On dirait que vous voulez
On Error Resume Next
pour le C++. Je ne peux pas le recommander.Pouvez-vous nous indiquer comment vous avez essayé d'utiliser le try/catch ? Parce que je pense que l'habillage de l'ensemble du code à l'intérieur de la boucle while dans un bloc try (et n'oubliez pas de document dans le code, pourquoi vous ne vous inquiétez pas au sujet de cette exception !) doit obtenir l'effet désiré.
OriginalL'auteur user788171 | 2011-10-04
Vous devez vous connecter pour publier un commentaire.
Vous avez juste besoin d'intercepter l'exception à l'intérieur de la boucle while:
} catch (std::out_of_range& exc) { std::cerr << exc.what(); }
Manque le type d'exception dans ce
catch
. Je vous suggère decatch(...)
depuis sa motivation pour le catch n'est pas un bon design.Est-ce la même syntaxe valide? Je reçois
error: expected ‘(’ before ‘{’ token
quand j'essaie un try catch déclaration sans parenthèses aprèscatch
.Ce code ne compile pas
OriginalL'auteur driis
La première chose que vous devez faire est de debug le code, que vous pouvez probablement exécuter le code à l'intérieur d'un débogueur et diagnostiquer le problème. En poussant le problème sous le tapis ne sera pas de la faire disparaître, et le programme sera toujours buggy.
Si, d'autre part, la question est quelque chose qui est vraiment exceptionnelle mais faisable (envisager l'ouverture d'un fichier, l'envoi d'un paquet sur le réseau, tout ce qui pourrait potentiellement un échec, mais ne devrait pas --que par rapport à quelque chose qui devrait jamais arriver), le
try/catch
approche devrait fonctionner.OriginalL'auteur David Rodríguez - dribeas
si vous pouviez poster un extrait de code, nous avons tous pu vous aider davantage.
mais en général, vous devriez toujours avoir une sorte d'erreur de manipulation, que ce soit un try{}catch{} ou juste vérifier une variable comme:
espère que vous obtenez ce problème résolu!
OriginalL'auteur Code Monkey