Python Prøv Unntatt: Trinn-for-trinn eksempler

Som programmerer kan du støte på situasjoner der koden din kan støte på feil eller unntak, så det er avgjørende å forstå hvordan du håndterer ulike typer feil i koden. Håndtering av feil er en avgjørende del av kodesyklusen. En vanlig måte å håndtere feil i Python på er å bruke try-except-teknikken.

Prøv-unntatt-teknikken består av en prøveblokk og en unntatt blokk. Prøv-blokken inneholder koden som kan generere en feil eller unntak, og unntaksblokken inneholder koden for å håndtere disse feilene eller unntakene.

Python Prøv Unntatt: Trinn-for-trinn eksempler

Når koden din kjører uten problemer innenfor prøveblokken, omgås unntaksblokken. Hvis det imidlertid oppstår en feil eller unntak i try-blokken, vil koden du har skrevet i unntaksblokken kjøre for å løse problemet.

I denne artikkelen vil vi diskutere Pythons try-expect-blokk, de forskjellige typene feil og unntak du kan støte på når du skriver kode, og hvordan du kan håndtere dem med try-except-setningene.

La oss komme inn i det!

Innholdsfortegnelse

Hva er typene feil i Python?

I Python kan feil grovt klassifiseres i to hovedtyper:

1. Syntaksfeil : Disse er også kjent som parsefeil forårsaket av feil grammatikk i koden. Syntaksfeil oppdages av Python-tolken og stopper kjøringen av programmet.

Følgende er en

print("Hello, world!"

I dette eksemplet mangler den avsluttende parentesen, så Python forstår ikke denne instruksjonen, og derfor er det en syntaksfeil.

Python Prøv Unntatt: Trinn-for-trinn eksempler

Unntak : Unntak oppstår når noe går galt under kjøringen av et program, selv om koden er syntaktisk korrekt. Disse kan inkludere logiske feil eller kjøretidsfeil som ugyldige innganger eller divisjon med null.

Følgende funksjon er et eksempel på et unntak i Python:

print(5 / 0)

Denne kodelinjen vil forårsake et ZeroDivisionError-unntak, som skjer når du prøver å dele et tall med null.

Python Prøv Unntatt: Trinn-for-trinn eksempler

På bildet ovenfor kan du se at et unntak oppsto da vi delte 5 på 0.

Nå som du har en forståelse av hvilke unntak som finnes i Python, skal vi se hvordan vi kan håndtere unntak med en Try-Except-setning i Python. La oss ta en titt på syntaksen til Try and Except-blokker i Python i neste avsnitt.

Hva er syntaksen til Try and Except Block?

Syntaksen til en funksjon definerer hvordan du skal bruke den funksjonen i koden din, inkludert hvilke argumenter den tar og hva den returnerer.

Vi har listet opp syntaksen til try-leddet og unntatt blokker, sammen med else- leddet og til slutt blokker nedenfor.

1. Syntaks for Try Statement

Try - setningen lar deg teste en kodeblokk for feil. Når du skriver kode i try- blokken, vil Python kjøre den som en normal del av programmet.

For å bruke en try- setning, legg ved koden din i try- blokken:

try: # Your code here

2. Syntaks for unntatt klausul

Except - leddet håndterer feilene som kan oppstå under kjøringen av try- blokken. Du kan spesifisere typen unntak du vil fange eller bruke en generell unntak -setning for å håndtere alle unntak.

Følgende syntaks viser en bestemt unntakstype:

try: # Your code here except ValueError: # Handle ValueError exception

For å håndtere unntaksklasser generelt eller flere unntak, kan du bruke syntaksen gitt nedenfor:

try: # Your code here except Exception: # Handle any exception

3. Syntaks for Else klausul/blokk

Den andre klausulen lar deg kjøre kodeblokken når det ikke er noen feil i try- blokken.

For å bruke en annen klausul kan du plassere den etter unntatt- blokken som vist nedenfor:

try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors

4. Syntaks for Endelig blokk

Den endelige blokken lar deg kjøre kode, uavhengig av resultatet av forsøket og unntatt blokker . Dette kan være nyttig for handlinger du vil utføre uansett om et unntak ble gjort eller ikke.

For å bruke den endelige blokken, kan du plassere den etter den andre blokken:

try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors finally: # Code to execute regardless of the result of the try and except blocks

For å se syntaksen ovenfor i aksjon, skal vi se på et eksempel på håndtering av unntak med try-except-blokken i Python.

Håndtere unntak med Try-Except i Python

Når det oppstår en feil, vil Python normalt stoppe og generere en feilmelding. Du kan håndtere flere unntak ved å bruke en prøv og unntatt blokk.

I eksemplet nedenfor håndterer vi divisjonen med null feil som tidligere ble generert da vi delte 5 med 0.

try: print(5 / 0) except ZeroDivisionError: print("You can't divide by zero!")

I denne koden oppstår et unntak, men programmet vil fortsette å kjøre og skrive ut "Du kan ikke dele med null!" i stedet for å stoppe med en feil.

Python Prøv Unntatt: Trinn-for-trinn eksempler

Ved å bruke try and except -blokker kan du kontrollere flyten av programmet. Ved å håndtere spesifikke unntak kan du gi nyttig tilbakemelding til brukeren og holde programmet i gang når en feil dukker opp.

I eksemplet ovenfor kan du se at vi brukte det innebygde unntaket ZeroDivisionError for å håndtere saken. I likhet med dette er det andre typer innebygde unntak også.

Kjennskap til disse unntakstypene vil hjelpe deg med å bestemme hvilken forventning du skal bruke når du støter på en feil i Python-koden din, så la oss ta en titt på noen unntak i neste avsnitt.

Hva er typene innebygde unntak?

I Python er unntak forekomster av en klasse avledet fra BaseException-klassen. Når feil oppdages, reiser Python et unntak. Det er flere innebygde unntak som du sannsynligvis vil støte på mens du skriver programmer i Python.

La oss ta en titt på noen av de vanligste:

  1. ZeroDivisionError: Dette oppstår når du prøver å dele et tall med null.

  2. NameError: Dette økes når du prøver å bruke en variabel eller funksjon som ikke er definert.

  3. ValueError : Skjer når du sender et argument av riktig type, men med en ugyldig verdi.

  4. TypeError : Denne oppstår når du sender et argument av feil datatype.

  5. FileNotFoundError : Skjer når du prøver å åpne eller få tilgang til en fil som ikke eksisterer.

  6. ImportError : Oppstår når du prøver å importere en modul eller pakke som ikke eksisterer eller ikke kan bli funnet.

Andre relevante unntak inkluderer:

  1. OverflowError: Denne feilen oppstår når et beregningsresultat er for stort til å bli representert.

  2. FloatingPointError: Denne heves når en flyttalloperasjon mislykkes.

  3. IndexError: Skjer når du prøver å få tilgang til en indeks som er utenfor rekkevidden til en sekvens (f.eks. liste eller tuppel).

  4. KeyError: Oppstår når du prøver å få tilgang til en nøkkel som ikke finnes i en ordbok.

  5. EOFError: Økes når Python støter på End Of File (EOF) mens du leser input, vanligvis fra et read()-kall.

  6. ArithmeticError: En superklasse for aritmetiske unntak, som ZeroDivisionError, OverflowError og FloatingPointError.

Noen ganger kan det være nødvendig å bruke brukerdefinerte unntak som pass- setning i en blokk der et unntak forventes. Dette bør gjøres med omtanke, da det kan undertrykke andre unntak.

Vi har gitt deg listen ovenfor over vanlige unntaksfeil slik at du kan bruke den som et program.

Vær oppmerksom på at de fleste unntak kan fanges opp og håndteres, men det bør utvises forsiktighet for å håndtere det siste anropet for å unngå nestet håndtering av andre unntakstilfeller.

I neste avsnitt vil vi se på prøve-unntatt-blokken i Python. La oss komme inn i det!

5 Bruk tilfeller av Prøv-unntatt blokk

Prøv unntatt blokkering er en av de mye brukte teknikkene for å håndtere feil. Følgende er noen av brukstilfellene for Try Except-blokken i Python:

1. Filhåndtering med Try Except

Når du arbeider med filer, er det alltid en sjanse for at filen ikke eksisterer eller ikke er på stedet skriptet prøver å få tilgang til den fra.

Følgende kode vil gi unntak når vi prøver å åpne en fil som ikke er til stede.

try: with open('file.txt', 'r') as file: print(file.read()) except FileNotFoundError: print('Sorry, this file does not exist.')

I denne koden prøver vi å åpne og lese en fil kalt 'file.txt'. Hvis 'file.txt' ikke eksisterer, oppstår et unntak, men i stedet for en feil som stopper programmet, vil det skrives ut 'Beklager, denne filen eksisterer ikke.'

Python Prøv Unntatt: Trinn-for-trinn eksempler

2. Håndtere brukerinndata med Try Except

Brukerinndata er et annet område hvor det ofte forekommer unntak. Brukere kan gi data i et uventet format, eller gi et input som er utenfor det akseptable området.

Følgende eksempel viser hvordan du håndterer brukerinndata med en prøve-unntatt-blokk:

try: age = int(input("Enter your age: ")) except ValueError: print("That's not a valid age. Please enter a number.")

I denne koden ber vi brukeren angi alderen sin. Hvis de legger inn noe som ikke kan konverteres til et heltall (som et ord eller en bokstav), oppstår et unntak, men i stedet for at programmet krasjer, vil det skrives ut 'Det er ikke en gyldig alder. Vennligst skriv inn et nummer.'

Python Prøv Unntatt: Trinn-for-trinn eksempler

3. Få tilgang til ikke-eksisterende ordboknøkler

I Python er en ordbok en foranderlig, uordnet , der hver nøkkel må være unik.

Når du prøver å få tilgang til en nøkkel som ikke finnes i en ordbok, oppstår Python en KeyError. Du kan bruke try and except for å håndtere dette unntaket som vist i eksemplet nedenfor:

dictionary = {"key1": "value1", "key2": "value2"} try: print(dictionary["key3"]) except KeyError: print("The key does not exist in the dictionary.")

I denne koden prøver du å skrive ut verdien for 'key3' fra en ordbok. Hvis 'nøkkel3' ikke finnes i ordboken, oppstår et unntak, men i stedet for at programmet stopper med en feil, vil det skrives ut 'Nøkkelen finnes ikke i ordboken.'

Python Prøv Unntatt: Trinn-for-trinn eksempler

4. Konvertere en streng til et heltall

Det kan hende du vil konvertere a til et heltall. Men hvis strengen ikke representerer et gyldig heltall, vil Python øke en ValueError.

Du kan bruke try and bortsett fra for å håndtere denne saken:

try: num = int("hello") except ValueError: print("That string can't be converted to integer.")

I dette tilfellet kan ikke 'hei' konverteres til et heltall, så Python reiser en ValueError og skriver ut 'Den strengen kan ikke konverteres til heltall.'

Python Prøv Unntatt: Trinn-for-trinn eksempler

5. Importere en modul

Når , er det mulig at modulen ikke eksisterer eller ikke er installert. Python vil oppstå en ImportError i slike tilfeller.

For å håndtere denne saken kan du bruke følgende kode:

try: import some_module except ImportError: print("The module 'some_module' is not installed.")

I eksemplet ovenfor, hvis 'some_module' ikke er installert eller ikke eksisterer, vil Python oppstå en ImportError og skrive ut 'Modulen 'some_module' is not installed.'

Python Prøv Unntatt: Trinn-for-trinn eksempler

For å lære mer om å skrive kode i Python og håndtere forventninger, sjekk følgende video:

Deretter skal vi se på noen av de beste praksisene for å håndtere unntak. La oss dykke ned i det!

Beste praksis for unntakshåndtering

I denne delen har vi listet opp noen av de beste fremgangsmåtene for å håndtere unntak med Try Except-blokken. Noen beste fremgangsmåter for å håndtere unntak er:

1. Vær spesifikk med unntak

Når du skriver koden din, er det avgjørende å fange opp unntak så spesifikt som mulig. Dette betyr at i stedet for bare å fange et generelt unntaksnavn, bør du fange opp den faktiske typen unntak du forventer.

På denne måten vil du vite nøyaktig hva slags feil som har oppstått, og du vil være i stand til å håndtere den på riktig måte.

2. Ikke undertrykk unntak

Når du har å gjøre med unntak, kan du bli fristet til å bare fange det med en unntaksbehandler og ikke gjøre noe med det. Dette er generelt en dårlig idé.

Hvis det oppstår en feil, er det vanligvis fordi det er noe som må fikses. Hvis du undertrykker unntaksklassen, kan feilen gå ubemerket hen og forårsake problemer senere.

3. Bruk endelig for oppryddingskode

Noen ganger har du en kode du må kjøre uavhengig av om det har skjedd en feil eller ikke. Dette kan være noe som å lukke en fil eller frigi noen ressurser.

I disse tilfellene kan du bruke en endelig blokk. Koden inne i finally- blokken vil kjøre uansett, så det er et flott sted å legge oppryddingskoden din.

try: # Some code here finally: # This code will run no matter what

4. Hev unntak når det er nødvendig

Det kan være situasjoner der du må fortelle brukeren av koden din at noe gikk galt.

I disse tilfellene kan du gjøre et unntak. Dette vil umiddelbart stoppe kjøringen av koden din og informere brukeren om at det har oppstått en feil.

if not valid_input: raise ValueError("Your input was not valid!")

Forståelse og implementering av disse beste fremgangsmåtene vil gjøre koden din mer robust, enklere å feilsøke og forhindre uventede krasj.

Siste tanker

For å avslutte det, å vite hvordan du bruker try and except i Python hjelper virkelig når du skriver koden din og møter unntak i den.

De lar programmet ditt håndtere feil problemfritt, i stedet for å bare stoppe plutselig. Det er en måte å sørge for at koden din kan håndtere overraskelser og fortsette.

I tillegg, når du bruker try and except, viser det at du virkelig tenker på hva som kan gå galt og gjør deg klar for det. Så ta deg tid til å lære deg disse verktøyene – de er veldig nyttige når du skriver kode i Python!


PowerApps-søkefelt: Slik legger du til og tilpasser

PowerApps-søkefelt: Slik legger du til og tilpasser

Lær hvordan du oppretter et PowerApps-søkefelt fra bunnen av og tilpasser det til å matche det overordnede temaet for appen din.

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

Høst eller fang en verdi inne i et mål for å gjenbruke i et annet mål for dynamiske beregninger ved å bruke SELECTEDVALUE DAX i LuckyTemplates.

Versjonshistorikk i SharePoint-lister

Versjonshistorikk i SharePoint-lister

Oppdag hvordan versjonshistorikk i SharePoint kan hjelpe deg med å se utviklingen av bestemte data, og hvor mange endringer den har gjennomgått.

Hex-fargekodevelger for Lucky Templates-rapporter

Hex-fargekodevelger for Lucky Templates-rapporter

Her er et verktøy for å lage rapporter og grafikk, en sekskantkodevelger for farger som du kan bruke for enkelt å få fargene til LuckyTemplates-rapportene dine.

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Du kan enkelt vise en datoperiode som en slicer i rapporten ved hjelp av en periodetabell. Bruk en M-kode for å lage den dynamiske datoskjæreren i LuckyTemplates.

Proporsjons- og frekvenstabeller i Excel

Proporsjons- og frekvenstabeller i Excel

Skulle dykke ned i frekvenstabeller i Excel samt proporsjonstabeller. Se nærmere på hva de er og når du skal bruke dem.

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Lær hvordan du laster ned og installerer DAX Studio og Tabular Editor 3 og hvordan du konfigurerer dem for bruk i LuckyTemplates og i Excel.

LuckyTemplates Shape Map Visualization for romlig analyse

LuckyTemplates Shape Map Visualization for romlig analyse

Denne bloggen inneholder Shape Map-visualiseringen for romlig analyse i LuckyTemplates. Jeg viser deg hvordan du kan bruke denne visualiseringen effektivt med dens funksjoner og elementer.

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

I denne opplæringen viser jeg frem en unik idé rundt finansiell rapportering, som tildeler resultater for å forhåndsbestemme tabellmaler inne i LuckyTemplates.

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

Opprett DAX-mål i LuckyTemplates ved å bruke eksisterende mål eller formler. Dette er det jeg kaller tiltaket forgreningsteknikk.