Kakorkoli že pišemo našo programsko kodo, se bo v njej vedno našel prostor tudi za napake. Za te napake se je med programerji uveljavil izraz »bug«, ali v slovenskem jeziku hrošč, sam proces iskanja in odpravljanja napak pa »debugging« ali slovensko razhroščevanje. Za programe lahko trdimo, da so »buggy«, kadar v njih odkrijemo veliko programskih hroščev, vendar ni vedno le (novo) napisana programska koda vzrok, da se občasno (največkrat seveda nepredvidljivo!) pojavijo posamezni hrošči. Vzrok je lahko tudi skriti hrošč znotraj operacijskega sistema (namenoma brez imena) ali hrošč v prevajalniku, ki pravilno napisano kodo v višjem programskem jeziku (v našem primeru Visual Basic) napačno prevede v strojno kodo za izvajanje na procesorju. Dolžnost vsakega programerja je, da preizkusi delovanje napisane programske kode pod različnimi pogoji in z različnimi spremenljivkami ter popravi dele programske kode, kjer se hrošč nahaja ali pa vsaj obstaja ugodno okolje, v katerem »bi se lahko razvil«! Za lažje in uspešnejše delo pri odpravljanju napak imamo razhroščevalnik, ki je del Visual Studia in ga lahko kadarkoli uporabimo.
Pravzaprav smo lahko zelo zadovoljni, če (večino) programskih hroščev odpravimo že med razvojem projekta. Nekateri bodo bolj trdoživi, lahko se pritajijo in morda se bodo pojavili šele dolgo časa potem, ko je aplikacija čisto normalno delovala, morda tudi nikoli. Temu se zelo težko izognemo, ker ne moremo nikoli predvideti vseh mogočih situacij kombinacij spremenljivk, nastavljenih, privzetih in vhodnih parametrov, ki jih lahko nastavlja tudi uporabnik. Napake, ki jih lahko naš program naleteli lahko razdelimo v tri kategorije: sintaktične (napake zaradi neupoštevanja sintakse jezika), napake med izvajanjem programske kode (runtime) in logične napake (semantične).
Sintaktične napake (VS sporočilo »Sintax error«) kar hitro odkrijemo, saj nam jih prevajalnik javi že med prevajanjem, ki se zaradi tega prekine in konča. Dokler vse napake niso odpravljene, prevajalnik našega programa ne more prevesti v neko delujočo strojno kodo, ker, po domače povedano, zaradi neupoštevanja sintakse jezika ne more ugotoviti, kaj bi bilo pravzaprav treba prevesti v izvršno kodo. Pravilna sintaksa pomeni dosledno upoštevanje strogih pravil izbranega programskega jezika in če se je držimo, prevajalniku nedvoumno sporočamo, kaj želimo z določeno programsko vrstico doseči in ta sporočilo nedvoumno razume in za to pripravi ustrezno programsko strojno kodo, ki se bo za to vrstico izvedla na procesorju računalnika.
Oglejmo si primer na sliki 1! V urejevalniku besedila smo vnesli sicer veljaven in prepoznaven ukaz »Dim«, pred njim pa je znak minus. Tega prevajalnik ne bi razumel, zato nas na to VS opozori že med pisanjem programske kode s tem, da podčrta napako, ko pa kazalec miške premaknemo na napako, se nam izpiše vrsta napake »Syntax error«. Če kljub temu vztrajamo in želimo pognati tako napisano programsko kodo, jo bo med prevajanjem zavrnil prevajalnik s podobnim sporočilom.
Do napak med izvajanjem programske kode (VS sporočilo: »Runtime error«) največkrat pride v primerih, ko v programu nismo predvideli vseh mogočih kombinacij v zvezi s parametri in so zato rezultati včasih nepredvidljivi. Če smo na primer množili dve veliki števili, lahko pričakujemo, da bo prišlo do prekoračitve dosega izbrane spremenljivke. Ko takšno napako odkrijemo, bomo najbrž izbrali (vsaj za spremenljivko »Rezultat«) spremenljivko z večjim dosegom, na primer »Integer«.
Primer napake med izvajanjem prikazuje slika 2. Dokler izračun ne povzroči prekoračitve, program sicer normalno deluje brez prekinitev!
Osnove programiranja Visual Basic.NET v okolju Visual Studio (4)
2017_SE248_31