A la programació informàtica, quina diferència hi ha entre els missatges d’avís i d’error?


Resposta 1:

Un missatge d'error (d'un compilador) indica un problema amb el text del programa tan greu que impedeix la generació de codi que podria ser raonablement el que el programador pretenia.

Un missatge d’advertència (d’un compilador) indica un problema que comporta una mala pràctica o desocupació, que no és tan greu com per evitar generar codi, però pot implicar que el codi no faci el que el programador pretenia.

He configurat un indicador al meu compilador per convertir tots els missatges d'advertència en missatges d'error, de manera que el compilador no intenta crear una imatge executable que pensi que està trencada.


Resposta 2:

Suposo que parleu durant la compilació.

Els errors són els que heu fet servir l'idioma malament, i el compilador no té sentit el que heu escrit i no intentarà utilitzar el que heu sol·licitat. Prevé GIGO.

Els avisos són on potser heu utilitzat malament l'idioma. El compilador pot utilitzar el codi com a escrit, però pot veure que heu introduït una debilitat en el vostre codi, i pot ser que no es comporti tal com teníeu la intenció de comportar-se, sinó que es comportarà com a escrit. Potser feu servir "un truc perfecte", però els trucs clars sovint us afecten allò que fa mal.

Sovint trobeu una opció de compilador, utilitzada en les versions de versions llançades, on els avisos són tractats com a errors i que s'ha de resoldre abans de poder publicar el codi. Durant la depuració i el desenvolupament precoç dels advertiments es pot tolerar l’execució, de manera que pot ser que no siguis tan resrtiu.

Per exemple, l’oració

paella torradora d’oli

no significa res i no farà res i obtindreu un error, la frase no és una frase. malgrat això

abocar oli a la torradora

Farà que es mostri un avís. Les instruccions són clares i senzilles i es poden actuar, però ja que sabem que el petroli s’hauria de posar en un contenidor (o potser desguàs) i les torradores no són recipients (o desguassos), donaríem un advertiment. Si dius que encara ho hem de fer, executar el programa, abocarem oli amb cura a la torradora. Ara teniu un comptador desordenat i una torradora que no heu d’utilitzar. Els resultats no són els que esperaves, però l’acció va ser possible.

Per descomptat, alguns idiomes disposen de compiladors que veurien el tipus equivocat i que produeixen un error, no un avís.


Resposta 3:

Altres respostes parlen de llenguatges compilats, però la distinció entre errors i advertències es veu fora d'aquest domini. En general, un error és un problema amb el programa que és prou significatiu que el programa no hauria de continuar, mentre que un avís és quelcom que pot no ser perjudicial, però probablement vulgueu prestar atenció. És bona pràctica tenir una política de "sense avisos" quan es desenvolupi codi. Són confuses i cada nou col·laborador de la base de codis ha d'entendre per què hi ha l'avís.