Hvordan fange alle unntak i Python

Hvordan fange alle unntak i Python
Programmerere klassifiserer ofte unntak som kodefeil som resulterer i feil når programmet blir utført. Unntak representerer feil som finner sted som et resultat av et skript. Noen programmerere kan fremdeles ikke fortelle forskjellen mellom feil og unntak. Flertallet av slike feil virker logiske. I Python blir unntak fanget med enkel logikk. Hver gang en Python -tolk møter et unntak, avslutter den arbeidsflyten. Det blir behandlet ved å gå gjennom anropsprosedyren. Programvaren vil krasje hvis dette ikke er gjort. For å skille mellom feil og unntak, har det vært to kategorier av feil å vurdere:
  • Syntaksfeil
  • Logiske feil (unntak)

Syntaksfeil

For å se arbeidet med logisk feil må vi først komme gjennom eksemplet med syntaksfeil først. Åpne skallterminalen ved å bruke “Ctrl+Alt+T” fra tastaturet. Etter å ha åpnet skallet, oppretter vi en ny Python -fil. For å opprette en fil, skriv den under-uttatte spørringen som vises på bildet som det er.

$ berøringstest.py

La oss åpne filen “Test.py ”fra din lokale hjemmekatalog ved å tappe på den. Etter at filen er åpnet, kan du skrive ut koden nedenfor i den som den er. Du må forstå denne koden først. Vi har lagt Python-støttelinje til det. Etter det har vi initialisert en ordbokvariabel "aldre" for å legge til to nøkler med to verdier. Vi har ikke lagt til et komma mellom begge nøklene. Dette vil være vår syntaksfeil på kjøretid. Etter det har vi skrevet ut nøkkelen "AQSA" og dens verdi fra ordboken. Lagre filen din med Ctrl+S, og klikk på kryssknappen for å la den legge igjen.

La oss kjøre filen vår av Python3 -versjonen som nedenfor. Utgangsbildet viser syntaksfeilen som sier: Ugyldig syntaks fordi kommaet mangler i uttalelsen. Du kan se at det ikke er noen logisk feil.

$ python3 -test.py

La oss bare raskt oppdatere koden ved å legge til et komma i uttalelsen for å forhindre syntaksfeil. Lagre denne koden og lukk den via tverrskilt fra høyre side av vinduet.

La oss kjøre filen vår igjen for å se resultatet av Python3 -versjonen. Utgangen fra øyeblikksbildet nedenfor viser riktig utgang uten syntaks eller logiske feil.

$ python3 -test.py

Logiske feil

Logiske feil er de unntakene som oppstår på en kjøretid på grunn av en viss logisk feil i koden vår. I starten av denne guiden har vi nevnt å fange alle unntakene samtidig. Men for å forstå det konseptet, trenger vi først raskt å se på å fange ett unntak om gangen. Åpne derfor skallterminalen og konverter den til Python3 -kodeformat for å bruke Python på den ved å bruke spørringen nedenfor som vist på bildet.

$ python3

Nå er terminalen klar til bruk for koding. Legg til noen uttalelser som viser en viss logisk feil i den. La oss si at vi har lagt til "2/0", som ikke er mulig i matematikk. Så dette burde kaste litt logisk feil. Skriv inn den på Shell og trykk Enter. Utgangen viser “ZerodivisionError” fordi alt delt på null ikke kan returnere et svar.

>>> 2/0

La oss ta et annet eksempel på å fange et enkelt unntak på terminalen. Åpne en fil som ikke en gang er opprettet eller funnet i den nåværende lokale katalogen til Linux som nedenfor. Det vil kaste et unntak for "filenotfounderror" på kjøretid fordi det ikke er noen slik fil i systemet vårt.

>>> Åpen (“To.tekst")

Eksempel: Fangst-alle unntak

Endelig! Det er på tide å få alle unntak på ett sted. Åpne derfor Python -filtesten.PY fra din nåværende hjemmekatalog for Linux -systemet. Skriv nå den viste koden nedenfor. Denne koden inneholder en liste “L” med forskjellige slags elementer i den. Vi har brukt en "for" -sløyfe for å få hver verdi fra listen og bruke en prøveuttalelse på den. Try -setningen vil først skrive ut dette elementet fra listen. Den neste linjen vil konvertere det elementet til heltall-type først og deretter dele 1 med det konverterte elementet. Etter dette har vi brukt unntatt uttalelsen som vil skrive ut unntaksnavnet som skjedde på grunn av "prøve" -uttalelsen ved hjelp av et sys.esc_info () -metode. En annen streng vil bli skrevet ut, og deretter etter "unntatt" uttalelsen er vi initialisert en utskriftserklæring for å skrive ut resultatet av divisjon som er gjort for å prøve uttalelsen. Trykk CTRL+S for å lagre filen og trykk på kryssknappen for å lukke den raskt. Åpner nå terminalen for å se arbeidet med koden vår.

Utfør spørringen nedenfor for å kjøre denne filen. Utgangen viser resultatet av utskriftserklæringen “Resultatet er“ brukt i “prøv” -uttalelsen for hvert listeelement. Ettersom de to første elementene på listen er streng- og multitype -variabler, kan ikke divisjon oppstå. Dette fører til forskjellige feil. Den første verdien “unntatt” uttalelse er utført og viser navnene på feil ved bruk av SYS.exc_info () metode. På grunn av unntaket vil den tredje utskriftserklæringen fra "unntatt" leddet bli utført for begge de to første elementene på listen. Men du kan se i utgangen at resultatet for den tredje verdien ikke kaster noe unntak. Dette er fordi det tredje elementet på listen er et heltall, og det kan deles med 1 perfekt. Unntatt uttalelsen utførte ikke i dette tilfellet; Dermed har kontrollen blitt gitt til den ytterste utskriftserklæringen, og den sender ut den resulterende verdien generert av divisjonen.

Konklusjon

Vi har dekket syntaks og logiske feil i denne artikkelen. Det viktigste er at vi har diskutert metoden for å fange alle unntak i artikkelen vår via “SYS.exc_info () ”metodebruk.