En programmation informatique, quelle est la différence entre les messages d'avertissement et les messages d'erreur?


Réponse 1:

Un message d'erreur (provenant d'un compilateur) indique un problème avec le texte du programme qui est si grave qu'il empêche la génération de code qui pourrait raisonnablement être ce que le programmeur voulait.

Un message d'avertissement (provenant d'un compilateur) indique un problème impliquant une mauvaise pratique ou une négligence, qui n'est pas assez grave pour empêcher la génération de code, mais peut impliquer que le code ne fait pas ce que le programmeur a prévu.

J'ai défini un indicateur dans mon compilateur pour transformer tous les messages d'avertissement en messages d'erreur, afin que le compilateur n'essaye pas de créer une image exécutable qu'il pense être rompue.


Réponse 2:

Je suppose que vous parlez pendant la compilation.

Les erreurs sont là où vous avez mal utilisé la langue, et le compilateur ne peut pas comprendre ce que vous avez écrit et n'essaiera pas d'utiliser ce que vous avez demandé. Il empêche GIGO.

Les avertissements sont ceux où vous avez peut-être mal utilisé la langue. Le compilateur peut utiliser le code tel qu'il est écrit, mais il peut voir que vous avez introduit une faiblesse dans votre code, et il peut ne pas se comporter comme vous vouliez qu'il se comporte, mais se comportera comme écrit. Vous utilisez peut-être «un truc soigné», mais des trucs soignés vous font souvent passer là où ça fait mal.

Vous trouverez souvent une option de compilateur, utilisée dans les versions, où les avertissements sont traités comme des erreurs et doivent être résolus avant de pouvoir publier le code. Pendant le débogage et les premiers avertissements de développement peuvent être tolérés pour l'exécution, vous risquez donc de ne pas être aussi restrictif.

Par exemple, la phrase

grille-pain à l'huile

ne signifie rien, et ne fera rien et obtiendra une erreur, la phrase n'est pas une phrase. pourtant

verser de l'huile dans le grille-pain

Provoque un avertissement. Les instructions sont claires et simples et peuvent être suivies d'effet, mais comme nous savons que l'huile doit être placée dans un récipient (ou peut-être égoutter) et que les grille-pain ne sont pas des récipients (ou des égouts), nous donnerions un avertissement. Si vous dites que nous devrions toujours le faire, exécutez le programme, nous verserons consciencieusement de l'huile dans votre grille-pain. Vous avez maintenant un compteur en désordre et un grille-pain que vous ne devriez pas utiliser. Les résultats ne sont pas ceux que vous attendiez, mais l'action était possible.

Bien sûr, certaines langues ont des compilateurs qui verraient le mauvais type et vous donneraient une erreur, pas un avertissement.


Réponse 3:

D'autres réponses parlent de langues compilées mais la distinction entre les erreurs et les avertissements est vue en dehors de ce domaine. En général, une erreur est un problème avec le programme qui est suffisamment important pour que le programme ne se poursuive pas, alors qu'un avertissement est quelque chose qui peut ne pas être dangereux mais auquel vous voulez probablement faire attention. C'est une bonne pratique d'avoir une politique «sans avertissement» lors du développement du code. Ils prêtent à confusion et chaque nouveau contributeur à la base de code doit comprendre pourquoi l'avertissement est là.