Python Prøv undtagen: Trin-for-trin eksempler

Som programmør kan du støde på situationer, hvor din kode kan løbe ind i fejl eller undtagelser, så det er afgørende at forstå, hvordan du håndterer forskellige typer fejl i din kode. Håndtering af fejl er en afgørende del af kodningscyklussen. En almindelig måde at håndtere fejl i Python på er ved at bruge try-except-teknikken.

Prøv-undtagen-teknikken består af en prøve-blok og en undtagen-blok. Prøv-blokken indeholder koden, der kan generere en fejl eller undtagelse, og undtagen-blokken indeholder koden til at håndtere disse fejl eller undtagelser.

Python Prøv undtagen: Trin-for-trin eksempler

Når din kode kører uden problemer inden for prøveblokken, omgås undtagen-blokken. Men hvis der opstår en fejl eller undtagelse i try-blokken, vil koden, du har skrevet i undtagen blokken, køre for at løse problemet.

I denne artikel vil vi diskutere Pythons try-expect-blok, de forskellige typer fejl og undtagelser, du kan støde på, når du skriver kode, og hvordan du kan håndtere dem med try-except-sætningerne.

Lad os komme ind i det!

Indholdsfortegnelse

Hvad er typerne af fejl i Python?

I Python kan fejl groft klassificeres i to hovedtyper:

1. Syntaksfejl : Disse er også kendt som parsingsfejl forårsaget af forkert grammatik i koden. Syntaksfejl opdages af Python-fortolkeren og stopper udførelsen af ​​dit program.

Følgende er en

print("Hello, world!"

I dette eksempel mangler den afsluttende parentes, så Python forstår ikke denne instruktion, og derfor er det en syntaksfejl.

Python Prøv undtagen: Trin-for-trin eksempler

Undtagelser : Undtagelser opstår, når noget går galt under afviklingen af ​​et program, selvom koden er syntaktisk korrekt. Disse kan omfatte logiske fejl eller runtime fejl såsom ugyldige input eller division med nul.

Følgende funktion er et eksempel på en undtagelse i Python:

print(5 / 0)

Denne kodelinje vil forårsage en ZeroDivisionError-undtagelse, som sker, når du forsøger at dividere et tal med nul.

Python Prøv undtagen: Trin-for-trin eksempler

På billedet ovenfor kan du se, at der opstod en undtagelse, da vi dividerede 5 med 0.

Nu hvor du har en forståelse af, hvilke undtagelser der findes i Python, vil vi se, hvordan vi kan håndtere undtagelser med en Try-Except-sætning i Python. Lad os tage et kig på syntaksen for Try and Except-blokke i Python i næste afsnit.

Hvad er syntaksen for Try and Except Block?

Syntaksen for en funktion definerer, hvordan du skal bruge den funktion i din kode, herunder hvilke argumenter den tager, og hvad den returnerer.

Vi har angivet syntaksen for try-sætningen og undtagen blokke, sammen med else -sætningen og endelig blokke nedenfor.

1. Syntaks for Try Statement

Try - sætningen giver dig mulighed for at teste en kodeblok for fejl. Når du skriver kode i try- blokken, vil Python udføre den som en normal del af dit program.

For at bruge en try- sætning skal du blot vedlægge din kode i try- blokken:

try: # Your code here

2. Syntaks for Undtagelsesklausul

Except - sætningen håndterer de fejl, der kan opstå under udførelsen af ​​try- blokken. Du kan angive den type undtagelse, du vil fange, eller bruge en generel undtagen -sætning til at håndtere alle undtagelser.

Følgende syntaks viser en bestemt undtagelsestype:

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

For at håndtere undtagelsesklasser generelt eller flere undtagelser, kan du bruge syntaksen nedenfor:

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

3. Syntaks for Else klausul/blok

Andet klausulen giver dig mulighed for at udføre kodeblokken, når der ikke er nogen fejl i try - blokken.

For at bruge en anden klausul kan du placere den efter undtagen 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 blok

Den endelige blok lader dig udføre kode, uanset resultatet af forsøget og undtagen blokke . Dette kan være nyttigt for handlinger, som du vil udføre, uanset om der er rejst en undtagelse eller ej.

For at bruge finally - blokken kan du placere den efter else- 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 at se ovenstående syntaks i aktion, ser vi på et eksempel på håndtering af undtagelser med try-except-blokken i Python.

Håndtering af undtagelser med Try-Except i Python

Når der opstår en fejl, vil Python normalt stoppe og generere en fejlmeddelelse. Du kan håndtere flere undtagelser ved at bruge en prøve og undtage blok.

I eksemplet nedenfor håndterer vi divisionen med nul fejl, der tidligere blev genereret, da vi dividerede 5 med 0.

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

I denne kode opstår der en undtagelse, men programmet vil fortsætte med at køre og udskrive "Du kan ikke dividere med nul!" i stedet for at stoppe med en fejl.

Python Prøv undtagen: Trin-for-trin eksempler

Brug af prøve og undtagen blokke giver dig mulighed for at kontrollere flowet af dit program. Ved at håndtere specifikke undtagelser kan du give nyttig feedback til brugeren og holde dit program kørende, når en fejl dukker op.

I eksemplet ovenfor kan du se, at vi brugte den indbyggede ZeroDivisionError-undtagelse til at håndtere sagen. I lighed med dette er der også andre typer indbyggede undtagelser.

Kendskab til disse undtagelsestyper vil hjælpe dig med at beslutte, hvilken forventning du skal bruge, når du støder på en fejl i din Python-kode, så lad os tage et kig på nogle undtagelser i næste afsnit.

Hvad er typerne af indbyggede undtagelser?

I Python er undtagelser forekomster af en klasse afledt af BaseException-klassen. Når der opdages fejl, rejser Python en undtagelse. Der er flere indbyggede undtagelser, som du sandsynligvis vil støde på, mens du skriver programmer i Python.

Lad os se på nogle af de mest almindelige:

  1. ZeroDivisionError: Dette opstår, når du forsøger at dividere et tal med nul.

  2. NameError: Dette hæves, når du forsøger at bruge en variabel eller funktion, der ikke er defineret.

  3. ValueError : Sker, når du sender et argument af den korrekte type, men med en ugyldig værdi.

  4. TypeError : Denne opstår, når du sender et argument af den forkerte datatype.

  5. FileNotFoundError : Sker, når du forsøger at åbne eller få adgang til en fil, der ikke eksisterer.

  6. ImportError : Hævet, når du forsøger at importere et modul eller en pakke, der ikke findes eller ikke kan findes.

Andre relevante undtagelser omfatter:

  1. OverflowError: Denne fejl opstår, når et beregningsresultat er for stort til at blive repræsenteret.

  2. FloatingPointError: Denne hæves, når en flydende komma-operation mislykkes.

  3. IndexError: Sker, når du forsøger at få adgang til et indeks, der er uden for rækkevidden af ​​en sekvens (f.eks. liste eller tuple).

  4. KeyError: Opstår, når du forsøger at få adgang til en nøgle, der ikke findes i en ordbog.

  5. EOFError: Hæves, når Python støder på End Of File (EOF) under læsning af input, normalt fra et read()-kald.

  6. ArithmeticError: En superklasse for aritmetiske undtagelser, såsom ZeroDivisionError, OverflowError og FloatingPointError.

Nogle gange kan det være nødvendigt at bruge brugerdefinerede undtagelser såsom pass statement i en blok, hvor der forventes en undtagelse. Dette bør gøres med omtanke, da det kan undertrykke andre undtagelser.

Vi har givet dig ovenstående liste over almindelige undtagelsesfejl, så du kan bruge den som et program.

Bemærk venligst, at de fleste undtagelser kan fanges og håndteres, men man skal passe på at håndtere det seneste opkald for at undgå indlejret håndtering af andre undtagelsestilfælde.

I næste afsnit vil vi se på try-except-blokken i Python. Lad os komme ind i det!

5 Use Cases af Try-Except Block

Prøv Undtagen blokering er en af ​​de meget brugte teknikker til håndtering af fejl. Følgende er nogle af anvendelsesmulighederne for Try Except-blokken i Python:

1. Filhåndtering med Try Except

Når du arbejder med filer, er der altid en chance for, at filen ikke eksisterer eller ikke er på den placering, dit script forsøger at få adgang til den fra.

Følgende kode vil give en undtagelse, når vi prøver at åbne en fil, der 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 kode forsøger vi at åbne og læse en fil kaldet 'file.txt'. Hvis 'file.txt' ikke eksisterer, sker der en undtagelse, men i stedet for en fejl, der stopper dit program, vil den udskrive 'Beklager, denne fil findes ikke.'

Python Prøv undtagen: Trin-for-trin eksempler

2. Håndtering af brugerinput med Try Except

Brugerinput er et andet område, hvor der ofte forekommer undtagelser. Brugere kan levere data i et uventet format eller give et input, der ligger uden for det acceptable interval.

Følgende eksempel viser, hvordan man håndterer brugerinput med en try-except-blok:

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

I denne kode beder vi brugeren om at indtaste deres alder. Hvis de indtaster noget, der ikke kan konverteres til et heltal (som et ord eller et bogstav), sker der en undtagelse, men i stedet for at programmet går ned, vil det udskrive 'Det er ikke en gyldig alder. Indtast venligst et nummer.'

Python Prøv undtagen: Trin-for-trin eksempler

3. Adgang til ikke-eksisterende ordbogsnøgler

I Python er en ordbog en foranderlig, uordnet , hvor hver nøgle skal være unik.

Når du forsøger at få adgang til en nøgle, der ikke findes i en ordbog, rejser Python en KeyError. Du kan bruge try and except til at håndtere denne undtagelse 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 kode forsøger du at udskrive værdien for 'key3' fra en ordbog. Hvis 'nøgle3' ikke findes i ordbogen, sker der en undtagelse, men i stedet for at programmet stopper med en fejl, vil det udskrive 'Nøglen findes ikke i ordbogen'.

Python Prøv undtagen: Trin-for-trin eksempler

4. Konvertering af en streng til et heltal

Der kan være tidspunkter, hvor du vil konvertere a til et heltal. Men hvis strengen ikke repræsenterer et gyldigt heltal, vil Python rejse en ValueError.

Du kan bruge try og undtagen til at håndtere denne sag:

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

I dette tilfælde kan 'hej' ikke konverteres til et heltal, så Python rejser en ValueError og udskriver 'Den streng kan ikke konverteres til heltal'.

Python Prøv undtagen: Trin-for-trin eksempler

5. Import af et modul

Når , er det muligt, at modulet ikke eksisterer eller ikke er installeret. Python vil rejse en ImportError i sådanne tilfælde.

For at håndtere denne sag kan du bruge følgende kode:

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

I ovenstående eksempel, hvis 'some_module' ikke er installeret eller ikke eksisterer, vil Python rejse en ImportError og udskrive 'Modulet 'some_module' er ikke installeret.'

Python Prøv undtagen: Trin-for-trin eksempler

For at lære mere om at skrive kode i Python og håndtere forventninger, tjek følgende video ud:

Dernæst vil vi se på nogle af de bedste praksisser for håndtering af undtagelser. Lad os dykke ned i det!

Best Practices for undtagelseshåndtering

I dette afsnit har vi listet nogle af de bedste fremgangsmåder til håndtering af undtagelser med Prøv Undtagelse-blok. Nogle bedste fremgangsmåder til håndtering af undtagelser er:

1. Vær specifik med undtagelser

Når du skriver din kode, er det afgørende at fange undtagelser så specifikt som muligt. Det betyder, at i stedet for blot at fange et generelt undtagelsesnavn, bør du fange den faktiske type undtagelse, som du forventer.

På denne måde ved du præcis, hvilken slags fejl der er opstået, og du vil være i stand til at håndtere den korrekt.

2. Undlad at undertrykke undtagelser

Når du har at gøre med undtagelser, kan du blive fristet til bare at fange det med en undtagelseshandler og ikke gøre noget ved det. Dette er generelt en dårlig idé.

Hvis der sker en fejl, er det som regel, fordi der er noget, der skal rettes. Hvis du undertrykker undtagelsesklassen, kan fejlen gå ubemærket hen og forårsage problemer senere.

3. Brug endelig til oprydningskode

Nogle gange har du noget kode, som du skal køre, uanset om der er sket en fejl eller ej. Dette kunne være noget som at lukke en fil eller frigive nogle ressourcer.

I disse tilfælde kan du bruge en endelig blok. Koden inde i finally- blokken kører uanset hvad, så det er et godt sted at placere din oprydningskode.

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

4. Hæv undtagelser, når det er nødvendigt

Der kan være situationer, hvor du skal lade brugeren af ​​din kode vide, at noget gik galt.

I disse tilfælde kan du rejse en undtagelse. Dette vil øjeblikkeligt stoppe eksekveringen af ​​din kode og informere brugeren om, at der er opstået en fejl.

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

Forståelse og implementering af disse bedste fremgangsmåder vil gøre din kode mere robust, lettere at fejlfinde og forhindre uventede nedbrud.

Afsluttende tanker

For at afslutte det, at vide, hvordan man bruger try and except i Python, hjælper virkelig, når du skriver din kode og støder på undtagelser i den.

De lader dit program håndtere fejl problemfrit, i stedet for bare at stoppe pludseligt. Det er en måde at sikre, at din kode kan håndtere overraskelser og fortsætte.

Plus, når du bruger try and undtagen, viser det, at du virkelig tænker på, hvad der kunne gå galt, og gør dig klar til det. Så tag dig tid til at lære disse værktøjer – de er super nyttige, når du skriver kode i Python!


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.