Jaký je v počítačovém programování rozdíl mezi varovnými a chybovými zprávami?


Odpověď 1:

Chybová zpráva (od kompilátoru) označuje problém s textem programu, který je tak závažný, že brání generování kódu, který by mohl být rozumně tím, co programátor zamýšlel.

Varovná zpráva (od kompilátoru) označuje problém týkající se špatné praxe nebo nedbalosti, který není tak závažný, aby zabránil generování kódu, ale může znamenat, že kód neudělá to, co programátor zamýšlel.

Ve svém kompilátoru jsem nastavil příznak tak, aby se všechny výstražné zprávy proměňovaly na chybové zprávy, takže se kompilátor nepokouší vytvořit spustitelný obrázek, o kterém si myslí, že je přerušený.


Odpověď 2:

Předpokládám, že mluvíte během kompilace.

Chyby jsou místem, kde jste špatně použili jazyk, a kompilátor nemůže pochopit, co jste napsali, a nebude se pokoušet použít to, co jste požadovali. Zabraňuje GIGO.

Varování jsou místem, kde jste možná jazyk zneužili. Kompilátor může použít kód jako zapsaný, ale může vidět, že jste do kódu vložili slabost, a nemusí se chovat tak, jak jste se chovali, ale bude se chovat tak, jak je napsáno. Možná používáte „úhledný trik“, ale úhledné triky vás často obtěžují tam, kde to bolí.

Často najdete možnost kompilátoru, která se používá v sestavení verzí, kde se s výstrahami zachází jako s chybami, a před uvolněním kódu je nutné je vyřešit. Během ladění a včasného vývoje varování mohou být tolerována k provedení, takže nemusíte být tak resrtictive.

Například věta

olejová toastová pánev

neznamená nic, nic se nezmění a neobdrží chybu, věta není věta. nicméně

nalijte olej do topinkovače

Způsobí varování. Pokyny jsou jasné a jednoduché a lze s nimi jednat, ale protože víme, že by olej měl být vložen do nádoby (nebo možná do kanalizace) a toustovače nejsou kontejnery (nebo kanalizace), dali bychom varování. Pokud řeknete, že bychom to měli pořád dělat, spusťte program, posloužíme si do vašeho topinkovače poslušně nalít olej. Nyní máte špinavý pult a toustovač byste neměli používat. Výsledky nejsou to, co jste očekávali, ale akce byla možná.

Některé jazyky mají samozřejmě kompilátory, které vidí špatný typ a zobrazí vám chybu, nikoli varování.


Odpověď 3:

Jiné odpovědi hovoří o kompilovaných jazycích, ale rozdíl mezi chybami a varováními je vidět mimo tuto doménu. Obecně chyba je problém s programem, který je natolik významný, že by program neměl pokračovat, zatímco varování je něco, co nemusí být škodlivé, ale pravděpodobně byste chtěli věnovat pozornost. Při vývoji kódu je dobré mít politiku „žádná varování“. Jsou matoucí a každý nový přispěvatel do kódové základny musí pochopit, proč je zde varování.