Mis on määratlemata väärtus?

Määratlemata väärtus ilmneb tavaliselt siis, kui arvutitarkvara koodis on viga. Tavaliselt see muutuja, mida programmil on kästud otsida, ei kehti või sellel ei ole väärtust, mis vastaks otsitavale koodile. Näiteks võib tarkvararakenduse koodi üks osa määratleda muutuja tähena, mis ei vasta käsufunktsioonile, mis käsib programmil numbrit otsida.

Kuna tarkvararakendused on kirjutatud koodis, nõuavad teatud käsud ja funktsioonid teatud tüüpi korrelatsiooni. Kui programm tuvastab, et sellel on määratlemata väärtus, tagastab see tavaliselt veateate. Nutikad programmeerijad suudavad tavaliselt määrata, kuidas määrata kindlaks määramata väärtus veateates või logis sisalduva keele põhjal.

Määramata väärtuseks loetakse ka null-osutit. Arvutustehnikas võrdub see väärtuse või objekti puudumisega. See on midagi, mida programm ei saa siduda kehtiva objektiga ja selle katse põhjustab sageli tõrke, mis põhjustab programmi lõpetamise. Kehtiva objekti või väärtuse puudumine ei pruugi tähendada, et muutujat pole olemas, vaid seda, et programm ei suuda seda sobitada millegagi, millel on mõtet.

Programmeerimisvead, mis loovad määratlemata väärtuse, võivad määratleda muutuja, näiteks “nimi”, mis on samaväärne semikooloniga. Kui funktsioon, mis otsib “nime”, proovib määratletud väärtusena semikoolonit sobitada, mõistab see, et semikoolon ei ole nimi. Mis puutub programmi, siis see ei kehti ja funktsioon ei saa edasi liikuda.

Muutujaid saab kontrollida, et näha, kas need sisaldavad määratlemata väärtusi. Üks viis selle testimiseks on võrrelda muutujat väärtusega “undefined” või “null”. Enamik programmeerijaid saab neid teste läbi viia. Kuna erinevad tarkvaraprogrammid on kirjutatud erinevates programmeerimiskeeltes, võivad protsessid ja sõnastus erineda.

Tarkvara programmeerijad saavad muuta ka programmi kodeerimist, et parandada määratlemata väärtustega seotud vigu. Nad peavad lihtsalt veenduma, et muutujate defineerimise viis on kooskõlas sellega, mida funktsioon otsib. Mõnikord suunavad testid või veateated neid õiges suunas või võib tekkida vajadus koodi põhjalikult rida-realt uurida.