Kohandatud hinnangute silumisel on mitu kategooriat veateateid ja tüüpilisi probleeme, mis võivad olla teadlikud, mis võib aidata probleemide algpõhjust tõhusalt kindlaks teha. Need satuvad sageli süntaksi-, loogiliste, käitusaja ja süsteemitaseme vead. Allpool on põhjalik juhend oluliste tõrketeadete kohta ja silumise teadmiste silumine, mida kohandatud hinnangutega tegeleda:
Süntaksi vead
Süntaksivigu on kõige põhilisemad vead, kus kood ei vasta hindamisel kasutatava programmeerimiskeele reeglitele ega skriptile. Tavaliselt püütakse neid kogumise või esialgse parsimise ajal.- Levinud veateated hõlmavad:
- Ootamatu märk või ootamatu märk, mis tähendab, et parser leidis koodistruktuuris midagi valesti.
- Puuduvad semikoolonid, sulgemata sulgud või tasakaalustamata sulgud näitavad koodide piiritlejate probleeme.
- Vale identifikaator või tundmatu märksõna viitab sellele, et kood viitab millelegi, mida keeletõlk või kompilaator ei tunnusta.
Need vead takistavad programmi käivitamist ja need tuleb enne jätkamist fikseerida.
Loogilised vead
Loogilised vead on vead hindamise kujunduses või algoritmis, kus kood töötab ilma krahhi, kuid annab valesid tulemusi.- Üldiselt pole loogiliste vigade selgesõnalisi veateateid, kuna kood ei purune.
- näitajad hõlmavad:
- ootamatu väljundtulemused või tõrked testijuhtumite korral.
- Viga arvutustes või otsustusharudes, mis tekitavad valesid vastuseid.
- Loogiliste vigu silumine nõuab sageli loogikavoogu põhjalikku ülevaatamist, mõistmist eeldatavate ja tegelike tulemuste ja servajuhtumite kontrollide või testide lisamist.
Runtime vead
Käitumisaja vead ilmnevad programmi teostamise ajal, sageli ootamatute sisendite või tingimuste tõttu, mida kood graatsiliselt ei käsitle.- tavalised käitusaja tõrketeated hõlmavad:
- NULLI VIGE VÄLJAS VÕI NULLI POINTERI Erand, mis näitab, et kood üritab kasutada objekti või muutujat, mida pole lähtestatud.
- Indeks on vahemikust või massiivi indeks piiridest väljas, tähistab katseid juurde pääseda massiivide või nimekirjade eraldatud piirile väljaspool.
- Jaotus null veaga ilmneb siis, kui jagaja on null, mis on matemaatiliselt määratlemata.
- Tüüpi ebakõlavead, kus toiminguid proovitakse kokkusobimatutel andmetüüpidel.
- Liiga sügava rekursiooni või liigse mälu kasutamise põhjustatud virna ülevooluvead.
- Mäluvigadest, kui programm ületab saadaoleva mälu jaotamise.
- Faili ei leitud ega faili juurdepääsu keelatud vead, mis on seotud suutmatusega lugeda/kirjutada vajalikke faile või ressursse.
Nende vigade käsitsemine hõlmab sageli sisendi hoolikat valideerimist, vigade käitlemist (proovipüük) ja ressursside haldamist.
Erandid ja üksikasjalikud veateated
Kohandatud hinnangud töötavad sageli platvormidel või raamistikel, mis pakuvad erandite käitlemismehhanisme probleemide leidmiseks ja teatamiseks.- Otsige erandjälgi, mis näitavad täpset joont ja kõne hierarhiat, mis viivad veani.
- Veateated võivad sisaldada:
- üksikasjalikud kirjeldused eeldatava versus tegeliku väärtuse või tüübi kohta.
- Kontekstuaalne muutuja teatab vigade tingimuste mõistmiseks veasaidi ümber.
-Hästi kavandatud hinnangud hõlmavad tähenduslikke ja lühikesi tõrketeateid, mis suunavad paranduste poole, mitte ainult madala taseme tõrgete teatamise.
konkreetsete sõnumite silumine kohandatud hinnangutes
Kohandatud hindamisriistade või platvormide kontekstis sisaldavad konkreetsed tõrketeated, mida vaadata:- kehtetu tegevus või ei suuda toiminguid teha, kui konkreetne funktsioon või toiming on praeguses hindamisseisundis ebaseaduslik.
- Valemite parsimise või väljenduse hindamisega seotud vead, mis sageli väidavad, et valem on kehtetu või sisaldab toetamata funktsioone.
- Timestiku vead, kui test või toiming võtab kauem aega kui lubatud.
- luba keelati sõnumid piiratud aladele või ressurssidele.
- Ühenduvus või võrguvead, kui kohandatud hindamine sõltub välistest teenustest.
- Andmete valideerimise vead Kui sisendid või väljundid ei vasta määratletud kriteeriumidele (nt numbrivahemikud, stringi vorming).
- andmebaasi tagatud kohandatud hinnangutes duplikaadid või piirangute rikkumised.
Parimad tavad tõrketeadete äratundmiseks ja kasutamiseks
- Lugege alati täielik veateade ja kõik sellega kaasnevad virna jäljed, et teha kindlaks, kus ja miks ebaõnnestumine juhtus.- kontrollige veast nimetatud konkreetse funktsiooni või meetodi nime; See annab otsese osuti.
- Mõista vea ajal sisendväärtusi või olekut, mis võib vihjata sellele, miks midagi valesti läks.
- Mitmeastmeliste kohandatud hinnangute jaoks tuvastage, kas viga kordub järjepidevalt konkreetsete sisenditega või juhuslikult.
- Mõnel juhul võivad tõrketeated olla üldised või ebamäärased, nõudes sügavamat mõõteriista, näiteks silumisprindi väljaannete lisamist või sisseehitatud debugeerijate kasutamist koodi kaudu astumiseks.
Ühised silumisstrateegiad
- Lihtsustage sisendiandmeid vea reprodutseerimiseks vajaliku miinimumiga.- eraldage komponent või moodul, kus tõrge tekib.
- Voolu ja väärtuste jälgimiseks kasutage koodi erinevates punktides logimist või jälgimist.
- Muutujate kontrollimiseks ja voolu kontrollimiseks kasutage murdepunkte ja interaktiivseid debugeerijaid.
- Testi eeldused, mille kood on tehtud andmevormingute, tüüpide ja väliste sõltuvuste kohta.
-Võrrelge eeldatavaid versus tegelikke väljundeid täpselt ühekordsete vigade, tüübi sundimise või vormindamise probleemide korral.
Näited kõrge väärtusega tõrketeadetest silumiseks
- "NullReferencexception rida X": täpselt punkt, kuhu pääseb initsialiseerimata muutuja.- "IndexoutofrangeException: indeks 5 piiridest pikkuse 3 jaoks": näitab loendi või massiivi piiride rikkumist.
- "InvalidoperationException: jada ei sisalda vastavat elementi": viga andmete või kogude päringutes.
- "TimeotoTException: operatsioon ei lõppenud eraldatud ajal": aeglane töö, mis nõudis optimeerimist või kordusi.
- "Formatexception: sisendstrateegia ei olnud õiges vormingus": Väärtuse parsimise probleemid, mis tulenevad ootamatu sisendist.
Üksikasjalike veateadete puudumise käitlemine
Mõned platvormid pakuvad ainult minimaalset tagasisidet nagu "ilmnes viga", mis muudab silumise keeruliseks.- Kasutage rikke asukoha leidmiseks koodi osi keelavaid süstemaatilisi elimineerimise tehnikaid.
- sisestage käsitsi logimine või ajutised väljundid enne kahtlustatavaid tõrkepunkte.
- Vaadake üle teadaolevate probleemide või sarnaste veateadete tähendused dokumentatsioon või kogukonna foorumid.
- Uurige kaudsete vigade põhjustena keskkonnamuutujaid, õigusi ja sõltuvusi.