Les erreurs de programme incluent généralement : les erreurs de syntaxe , les erreurs logiques et les anomalies de fonctionnement .
Sont introduits respectivement :
1. Erreur de syntaxe :
Inutile de dire que tout le monde doit savoir grâce aux études précédentes que si le code du programme ne répond pas aux exigences grammaticales, le compilateur provoquera une erreur lors de la compilation et de la liaison, ce qui est facile à trouver.
2. Erreurs logiques :
Dans ce cas, cela signifie qu’il n’y a aucun problème de compilation, aucune erreur et qu’il peut être exécuté. Cependant, le résultat de sortie ou le processus d'exécution du programme n'est pas celui attendu et ne peut pas atteindre les résultats attendus. Ce type d'erreur est appelé erreur logique et nécessite un débogage et des tests continus pour être découvert.
3. Anomalie de fonctionnement :
L'exception d'exécution (exception) fait référence à l'arrêt anormal du programme en raison de circonstances inattendues au cours du processus en cours, telles qu'une mémoire insuffisante, des fichiers ouverts qui n'existent pas, une division par 0, etc.
Nous connaissons déjà les deux premiers, et le troisième est ce que nous expliquerons en détail dans ce chapitre. Dans des circonstances normales, bien que les erreurs d'exception du programme ne puissent être évitées, elles peuvent être anticipées et un traitement prédictif peut être effectué pour éviter les plantages du programme et garantir la robustesse du programme. Ce comportement est appelé gestion des exceptions .
Dans les études précédentes, nous disposions de nombreuses façons de capturer et de gérer les exceptions, comme évaluer la valeur de retour de la fonction appelante via if...else, ou vérifier les données clés avant d'exécuter le code, etc. Si un problème survient, utilisez exit ( ) ou abort() pour terminer le programme.
Par exemple:
cin>>a>>b;if(b==0)//Catch exception{cout<<Drivide0!<<endl;}else{cout<<a<</<<b<<=a/b<< fin;}
Comme vous pouvez le constater, dans les études précédentes, nous utilisons souvent if pour émettre des jugements afin de capturer et d'empêcher des parties clés. Cependant, cette méthode rend souvent le programme moins lisible en raison d'un trop grand nombre de jugements if réduits et du moment où il est nécessaire de le faire. Pour déterminer la valeur de retour d'une fonction, nous sommes impuissants pour les fonctions qui ne renvoient pas de valeur. Pour cette raison, C++ nous fournit une solution de gestion des exceptions.