Python

Python Traceback Tutorial

Python Traceback Tutorial
Når et unntak er opprettet mens koden kjøres, viser Python et spor. En sporbarhet ser ut til å være en rapport i Python som inkluderer funksjonskallene som er gjort på et bestemt sted i koden, i.e., Når du har gjort en feil, foreslås det at vi slipper den bakover (traceback). Traceback kan gi detaljer om hva som gikk ned med koden hvis koden mottok en feil. Slike tracebacks kan se litt utmattende ut, men de kan være veldig nyttige til du fjerner det og ser hva det prøver å lære deg. Det er mye data i Python-sporingen som vil hjelpe deg med å analysere og korrigere årsaken til problemet som genereres i koden din.

Tolk sporingen:

Hvis du ser på noen spor, kan det gi en bedre tolkning av kunnskapen de gir, slik at du kan få noe ut av det. La oss ta en titt på tolkningen av hvordan et grunnleggende unntak kan være sporbart. Her er et eksempel på en enkel kode som genererer en sporingsfeil i utførelsen av Spyder (Python 3).

Nedenfor er feilsporingsbildet. Første linje viser filplasseringen. Her er noen spesifikasjoner for alle linjene som bruker farger.

Hvit: Traceback (siste ringe sist) er en traceback-uttalelse. På den annen side viser den siste hvite delen den relaterte feilinformasjonen.

Grønn: Å fortelle et filnavn og sted har en feil.

Blå: Viser linjenummeret til en fil der feilen har funnet sted.

Gul: Den viser den faktiske linjen der et unntak dukket opp.

Rød: Type feil.

Her er noen viktige feil i sporingen:

NameError
IndexError
KeyError
Type Feil
valueError
ImportError / ModuleNotFound

Navn feil:
Når du vil tolke en variabel som ikke er spesifisert i koden, vises NameError. Her er et enkelt eksempel på sporing av NameError. Vi har en variabel 'Nummer' definert med noen verdi, mens i skrive ut uttalelse, har vi skrevet ut 'nummen', som ikke er definert noe sted i koden. La oss kjøre denne koden og sjekke hva som skjer.

Du kan se sporingen av NameError har oppstått ettersom vi ikke har definert variabelen 'numb', så hvordan kan den skrives ut. Det er derfor dette programmet viser NameError og utdyper den med ekstra informasjon på siste linje med hvit og rød tekst. Gul tekst viser den nøyaktige koden der feilen oppstår.

Indeksfeil:

En IndexError produseres når en serie som er utenfor rekkevidde er definert i koden. Vi har definert en liste heter 'ny' har 5 indekser med noen verdier i seg. Etter det må vi oppgi utskriftskommandoen for å sende verdien til indeks Nummer 9.

Når vi kjører denne koden, vil den generere IndexError-definerende indeks utenfor rekkevidde. Som vi har definert en liste med 5 indekser, har det trykte indeksnummeret, som er 9, ikke tilgang fordi det ikke er i vårt utvalg.

Nøkkelfeil:

Python genererer en nøkkelfeil når du prøver å nå nøkkel som er ikke definert eller kartlagt, spesielt fra en ordbok. Det er mer som en IndexError. Så la oss se på et enkelt eksempel på en ordbok som heter 'tilfeldig' med to nøkler definert i den med noen verdier som er tildelt disse tastene. På neste linje har vi skrevet ut nøkkelen som heter 'EN' i utskriftsuttalelsen.

Åh! Vi har sporbar KeyError. Dette skyldes feil nøkkel i utskriftsuttalelsen, som ikke er definert i ordboken. Man kan gjøre en feil ved å oppgi en stor bokstavnøkkel mens ordboken har en liten bokstavnøkkel definert i seg.

Type feil:

TypeError er definert som et unntak som oppstår når en eller annen operasjon eller metode er blitt smurt til en uegnet type av en enhet eller variabel. Vi har et eksempel på en enkel variabel som tar to verdier mens denne strengen legger til begge verdiene. Den første verdien er en strengtype, og den andre er en heltallstype. Utskriftserklæringen skriver ut resultatet av tillegget.

Når denne koden utføres, hever den unntaket. Dette unntaket handler om at feil type objekt blir sammenkoblet. Det er utdypende at du ikke kan legge til en strengtypevariabel med en heltallsvariabel.

Verdifeil:

Verdifeil er definert som et unntak som bare forekommer når noen innebygd metode tar riktig type argument men feil verdi i det. La oss se på et lite eksempel. Vi tar en innebygd metode for int () med noe strengverdi i en utskrift.

Når du utfører denne enlinjekoden, vil den generere en ValueError fordi vi bruker en heltallfunksjon mens vi gir den en strengverdi som skal utføres. Derfor vil det vise at funksjonen int () har en ugyldig verdi i seg.

På den annen side, hvis du gir den noen brøkverdi, vil den konvertere den til et heltall.

Denne koden gir ut 11 fordi den bare tar hele delen mens desimaldelen ignoreres fullstendig.

Importfeil / modul ikke funnet:

Noen ganger må du import noen pakker eller moduler i pythonkoden din for å bruke spesielle funksjoner gjennom dem. Du finner en ImportError-traceback når det er noe feil ved en Import-setning i koden. Denne sporingsfeilen oppstår når du er ute av stand til finne den spesifikke modulen eller noe fra pakken. Her har vi importert to moduler, 'pip' og 'java', i koden vår.

Mens du utfører denne koden, vil ModuleNotFoundError bli sporet tilbake. Dette er fordi den importerte modulen 'java' ikke støttes av python-biblioteket. På den annen side gir det ikke noe unntak ved import av 'pip'-modulen fordi den er Python-støttet modul.

Konklusjon:

Python-sporingen gir utmerket kunnskap som hjelper deg med å finne ut hva som går galt i koden. Enten du gjør dette for første gang eller bare ikke forstår hva det gjør, kan traceback-generasjonen være litt skremmende. For å bli en sterkere Python-programmerer, er det viktig å lære hvilke detaljer en Python-sporing gir.

Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...
Hvordan øke FPS i Linux?
FPS står for Bilder per sekund. FPSs oppgave er å måle bildefrekvensen i videoavspilling eller spillprestasjoner. Med enkle ord betegnes antall uavbru...
Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...