Derinant pasirinktinius vertinimus, yra keletas klaidų pranešimų kategorijų ir problemų, kurias reikia žinoti, o tai gali padėti efektyviai nustatyti pagrindinę problemų priežastį. Jie dažnai patenka į sintaksės, loginę, vykdymo laiko ir sistemos lygio klaidas. Žemiau yra išsamus svarbių klaidų pranešimų ir derinimo įžvalgų vadovas, kurio reikia ieškoti atliekant pasirinktinius vertinimus:
Sintaksės klaidos
Sintaksės klaidos yra pačios pagrindinės klaidų tipas, kai kodas neatitinka programavimo kalbos ar scenarijaus taisyklių, naudojamų vertinime. Paprastai jie sugaunami kompiliavimo ar pradinio analizės metu.- Įprasti klaidų pranešimai apima:
- Netikėtas prieigos raktas ar netikėtas veikėjas, tai reiškia, kad analizatorius rado ką nors blogo kodo struktūroje.
- Trūkstamas kabliataškis, neapsaugotas skliaustas ar neprilygstami laikikliai rodo kodo ribotuvų problemas.
- Netinkamas identifikatorius arba nežinomas raktinis žodis rodo, kad kodas nurodo tai, ko neatpažįstama kalbos vertėjo ar kompiliatoriaus.
Šios klaidos neleidžia programai veikti ir prieš tęsiant turi būti ištaisytos.
loginės klaidos
Loginės klaidos yra klaidos vertinimo projektavimo ar algoritmo klaidose, kai kodas veikia be sudužusio, bet duoda neteisingus rezultatus.- Paprastai nėra aiškių loginių klaidų klaidų pranešimų, nes kodas nesulaužomas.
- Rodikliai apima:
- Netikėti išvesties rezultatai ar nesėkmės bandymo atvejais.
- Apskaičiavimų ar sprendimų šakų klaida, sukurianti neteisingus atsakymus.
- Derinant logines klaidas, dažnai reikia nuodugniai peržiūrėti loginį srautą, supratimą apie tikėtinus ir faktinius rezultatus ir pridėti patikrinimus ar testus krašto atvejų.
Runtime klaidos
Vykdymo laiko klaidos įvyksta vykdant programą, dažnai dėl netikėtų įvesties ar sąlygų, kurių kodas nesielgia grakščiai.- Įprasti vykdymo laiko klaidų pranešimai apima:
- NULL REFORMACIJA arba NULL ROINDER Išimtis, nurodanti kodą, bando naudoti objektą ar kintamąjį, kuris nebuvo inicijuotas.
- Rodyklė iš diapazono arba masyvo indekso iš ribų reiškia bandymus pasiekti elementus, esančius už paskirstytos masyvų ar sąrašų ribų.
- Padalijimas pagal nulinę klaidą įvyksta, kai daliklis yra nulis, o tai matematiškai neapibrėžta.
- Tipo neatitikimo klaidos, kai operacijos bandomos nesuderinamiems duomenų tipams.
- Stack perpildymo klaidos, kurias sukelia per gilus pasikartojimas ar per didelis atminties naudojimas.
- Iš atminties klaidų, kai programa viršija turimą atminties paskirstymą.
- Failas nerastas arba prieigos prie failo atmetamos klaidos, susijusios su nesugebėjimu skaityti/rašyti būtinų failų ar išteklių.
Šių klaidų tvarkymas dažnai apima kruopštų įvesties patvirtinimą, klaidų tvarkymo konstrukcijas (bandymo ir varžybos) ir išteklių valdymą.
Išimtys ir išsamūs klaidų pranešimai
Individualūs vertinimai dažnai vykdomi platformose ar sistemose, kurios suteikia išimčių tvarkymo mechanizmus, skirtus sugauti ir pranešti apie problemas.- Ieškokite išimčių kamino pėdsakų, kurie parodo tikslią eilutę ir skambučio hierarchiją, sukeliančią klaidą.
- Klaidų pranešimuose gali būti:
- Išsamūs numatomo ir faktinės vertės ar tipo aprašymai.
- Kontekstinės kintamos būsenos aplink klaidų svetainę, kad suprastų problemines sąlygas.
-Gerai suprojektuoti vertinimai apima prasmingus ir glaustus klaidų pranešimus, kurie vadovauja pataisymams, o ne tik pranešti apie žemo lygio gedimus.
Konkrečių pranešimų derinimas pagal pasirinktinius vertinimus
Pasirinktų vertinimo įrankių ar platformų kontekste konkretūs klaidų pranešimai, kuriuos reikia žiūrėti: Įtraukite:- Netinkamas veiksmas arba nesugeba atlikti veiksmų, kai dabartinėje vertinimo būsenoje tam tikra funkcija ar operacija yra neteisėta.
- Klaidos, susijusios su formulės pažinimu ar išraiškos vertinimu, dažnai teigdamos, kad formulė negalioja arba joje yra nepalaikomos funkcijos.
- Laiko klaidos, kai bandymas ar operacija užtrunka ilgiau, nei leidžiama.
- Leidimas atmetė pranešimus, jei pateks į ribotas sritis ar išteklius.
- Ryšys ar tinklo klaidos, kai pasirinktinis vertinimas priklauso nuo išorinių paslaugų.
- Duomenų patvirtinimo klaidos Jei įvesties ar išvesties neatitinka apibrėžtų kriterijų (pvz., Skaičių diapazonų, eilutės formato).
- Duomenų bazės remiamų individualių įvertinimų kopijų ar apribojimų pažeidimų kopijos.
geriausia klaidų pranešimų atpažinimo ir naudojimo praktika
- Visada perskaitykite visą klaidos pranešimą ir bet kokį pridedamą kamino pėdsaką, kad nustatytumėte, kur ir kodėl gedimas įvyko.- Patikrinkite, ar nėra konkrečios klaidos funkcijos ar metodo pavadinimo; Tai suteikia tiesioginį rodyklę.
- Supraskite įvesties vertes ar būseną klaidos metu, o tai gali užsiminti, kodėl kažkas nutiko ne taip.
- Atliekant įvairius individualius vertinimus, nustatykite, ar klaida pasikartoja nuosekliai su konkrečiomis įvestimis ar retkarčiais.
- Kai kuriais atvejais klaidų pranešimai gali būti bendrieji arba neaiškūs, reikalaujant gilesnių prietaisų, tokių kaip pridedant derinimo spausdinimo teiginius arba naudojant integruotus suderinimus, norint pereiti kodą.
Bendrosios derinimo strategijos
- Supaprastinkite įvesties duomenis į minimalų, reikalingą klaidai atkurti.- Išskirkite komponentą ar modulį, kuriame kyla klaida.
- Norėdami stebėti srautą ir vertes, naudokite registravimą ar sekimą įvairiuose kodo taškuose.
- Norėdami patikrinti kintamuosius ir kontroliuoti srautą, naudokite lūžio taškus ir interaktyvius rinkėjus.
- Kodekso apie duomenų formatus, tipus ir išorines priklausomybes padarytos bandymo prielaidos.
-Palyginkite numatomus, palyginti su faktiniais išėjimais, jei norite, kad klaidos, tipo prievartos ar formatavimo problemos.
didelės vertės klaidų pranešimų, skirtų derinimui
- „NullreferenceException x eilutėje“: NUSTATYMAS, kur pasiekiamas UN initializuotas kintamasis.- „IndexOutOfRangeException: 5 rodyklė iš 3 ilgio ribų“: nurodo sąrašo arba masyvo ribų pažeidimą.
- „InvalidOperationException: Sequence nėra atitikimo elemento“: Klaida pateikiant duomenis ar kolekcijas.
- „TimeOutException: Operacija nebuvo baigta per paskirtą laiką“: Lėtas operacija, reikalaujanti optimizavimo ar pakartojimų.
- „Formatexception: įvesties eilutė nebuvo teisingo formato“: vertės analizės problemos dėl netikėto įvesties.
tvarkyti išsamius klaidų pranešimus
Kai kurios platformos teikia tik minimalų atsiliepimą, pavyzdžiui, įvyko „klaida“, todėl derinimas yra sudėtingas.- Norėdami rasti gedimo vietą, naudokite sisteminius pašalinimo būdus, išjungdami kodo dalis.
- Prieš įtariamus gedimo taškus įterpkite rankinį registravimą arba laikinus išėjimus.
- Peržiūrėkite dokumentus ar bendruomenės forumus, susijusius su žinomais klausimais ar panašiomis klaidos pranešimų reikšmėmis.
- Išnagrinėkite aplinkos kintamuosius, leidimus ir priklausomybes kaip netiesioginių klaidų priežastis.