Python Try Except: stapsgewijze voorbeelden

Python Try Except: stapsgewijze voorbeelden

Als programmeur kunt u situaties tegenkomen waarin uw code fouten of uitzonderingen kan tegenkomen, dus het is van cruciaal belang om te begrijpen hoe u met verschillende soorten fouten in uw code om moet gaan. Het afhandelen van fouten is een cruciaal onderdeel van de codeercyclus. Een gebruikelijke manier om met fouten in Python om te gaan, is door de try-except-techniek te gebruiken.

De Python try-except-techniek bestaat uit een try-blok en een exception-blok. Het try-blok bevat de code die een fout of uitzondering kan genereren, en het exception-blok bevat de code om die fouten of uitzonderingen af ​​te handelen.

Python Try Except: stapsgewijze voorbeelden

Wanneer uw code probleemloos wordt uitgevoerd binnen het try-blok, wordt het behalve-blok omzeild. Als er echter een fout of uitzondering optreedt binnen het try-blok, wordt de code die u in het exception-blok hebt geschreven uitgevoerd om het probleem op te lossen.

In dit artikel bespreken we het try-expect-blok van Python , de verschillende soorten fouten en uitzonderingen die je kunt tegenkomen bij het schrijven van code, en hoe je ze kunt afhandelen met de try-except-statements.

Laten we erop ingaan!

Inhoudsopgave

Wat zijn de soorten fouten in Python?

In Python kunnen fouten grofweg worden ingedeeld in twee hoofdtypen:

1. Syntaxisfouten : deze staan ​​ook bekend als parseerfouten die worden veroorzaakt door onjuiste grammatica in de code. Syntaxisfouten worden gedetecteerd door de Python-interpreter en stoppen de uitvoering van uw programma.

Het volgende is een voorbeeld van een syntaxisfout in Python:

print("Hello, world!"

In dit voorbeeld ontbreekt het haakje sluiten, dus begrijpt Python deze instructie niet en daarom is het een syntaxisfout.

Python Try Except: stapsgewijze voorbeelden

Uitzonderingen : Uitzonderingen doen zich voor wanneer er iets misgaat tijdens de uitvoering van een programma, zelfs als de code syntactisch correct is. Dit kunnen logische fouten of runtime-fouten zijn, zoals ongeldige invoer of deling door nul.

De volgende functie is een voorbeeld van een uitzondering in Python:

print(5 / 0)

Deze coderegel veroorzaakt een ZeroDivisionError-uitzondering, die optreedt wanneer u een getal door nul probeert te delen.

Python Try Except: stapsgewijze voorbeelden

In de afbeelding hierboven kun je zien dat er een uitzondering is opgetreden toen we 5 door 0 deelden.

Nu u begrijpt welke uitzonderingen er zijn in Python, gaan we kijken hoe we uitzonderingen kunnen afhandelen met een Try-Except-instructie in Python. Laten we in de volgende sectie eens kijken naar de syntaxis van Try and Except-blokken in Python.

Wat is de syntaxis van Try and Except Block?

De syntaxis van een functie definieert hoe u die functie in uw code moet gebruiken, inclusief welke argumenten er nodig zijn en wat deze retourneert.

We hebben de syntaxis van de try-clausule en de blokken behalve weergegeven, samen met de else- clausule en de blokken tenslotte hieronder.

1. Syntaxis van Try-verklaring

Met de instructie try kunt u een codeblok testen op fouten. Wanneer u code schrijft binnen het try- blok, zal Python deze uitvoeren als een normaal onderdeel van uw programma.

Om een ​​try- statement te gebruiken, plaatst u gewoon uw code in het try- blok:

try: # Your code here

2. Syntaxis van uitzonderingsclausule

De except- clausule handelt de fouten af ​​die kunnen optreden tijdens de uitvoering van het try- blok. U kunt het type uitzondering specificeren dat u wilt afvangen of een algemene uitzonderingsinstructie gebruiken om alle uitzonderingen af ​​te handelen.

De volgende syntaxis toont een specifiek uitzonderingstype:

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

Om uitzonderingsklassen in het algemeen of meerdere uitzonderingen te behandelen, kunt u de onderstaande syntaxis gebruiken:

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

3. Syntaxis van Else Clause/Block

Met de else- clausule kunt u het codeblok uitvoeren als er geen fouten in het try- blok staan.

Om een ​​else- clausule te gebruiken, kunt u deze na het behalve- blok plaatsen, zoals hieronder wordt weergegeven:

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

4. Syntaxis van Eindelijk blokkeren

Met het final- blok kun je code uitvoeren, ongeacht het resultaat van de try- and- except -blokken. Dit kan handig zijn voor acties die u wilt uitvoeren, ongeacht of er een uitzondering is gemaakt.

Om het FINLET- blok te gebruiken, kun je het achter het else- blok plaatsen:

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

Om de bovenstaande syntaxis in actie te zien, kijken we naar een voorbeeld van het afhandelen van uitzonderingen met het try-except-blok in Python.

Uitzonderingen afhandelen met Try-Except in Python

Wanneer er een fout optreedt, stopt Python normaal gesproken en genereert een foutmelding. U kunt meerdere uitzonderingen afhandelen door een try- and- except -blok te gebruiken.

In het onderstaande voorbeeld behandelen we de deling door nulfout die eerder werd gegenereerd toen we 5 door 0 deelden.

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

In deze code doet zich een uitzondering voor, maar het programma blijft draaien en print "Je kunt niet delen door nul!" in plaats van te stoppen met een fout.

Python Try Except: stapsgewijze voorbeelden

Door try -and- except -blokken te gebruiken, kunt u de stroom van uw programma regelen. Door specifieke uitzonderingen af ​​te handelen , kunt u de gebruiker nuttige feedback geven en uw programma draaiende houden wanneer er een fout optreedt.

In het bovenstaande voorbeeld kunt u zien dat we de ingebouwde uitzondering ZeroDivisionError hebben gebruikt om de zaak af te handelen. Vergelijkbaar hiermee zijn er ook andere soorten ingebouwde uitzonderingen.

Bekendheid met deze typen uitzonderingen zal u helpen beslissen welke verwachting u moet gebruiken wanneer u een fout tegenkomt in uw Python-code, dus laten we eens kijken naar enkele uitzonderingen in de volgende sectie.

Wat zijn de soorten ingebouwde uitzonderingen?

In Python zijn uitzonderingen instanties van een klasse die is afgeleid van de klasse BaseException. Wanneer er fouten worden gedetecteerd, roept Python een uitzondering op. Er zijn verschillende ingebouwde uitzonderingen die u waarschijnlijk zult tegenkomen terwijl u programma's in Python schrijft.

Laten we eens kijken naar enkele van de meest voorkomende:

  1. ZeroDivisionError: Dit gebeurt wanneer u een getal probeert te delen door nul.

  2. NameError: dit wordt gegenereerd wanneer u een variabele of functie probeert te gebruiken die niet is gedefinieerd.

  3. ValueError : Gebeurt wanneer u een argument van het juiste type doorgeeft, maar met een ongeldige waarde.

  4. TypeError : deze treedt op wanneer u een argument van het verkeerde gegevenstype doorgeeft.

  5. FileNotFoundError : Gebeurt wanneer u probeert een bestand te openen of te openen dat niet bestaat.

  6. ImportError : Treedt op wanneer u probeert een module of pakket te importeren dat niet bestaat of niet kan worden gevonden.

Andere relevante uitzonderingen zijn:

  1. OverflowError: Deze fout treedt op wanneer een berekeningsresultaat te groot is om weer te geven.

  2. FloatingPointError: Deze wordt gegenereerd wanneer een drijvende-kommabewerking mislukt.

  3. IndexError: Gebeurt wanneer u toegang probeert te krijgen tot een index die buiten het bereik van een reeks ligt (bijv. lijst of tuple).

  4. KeyError: doet zich voor wanneer u toegang probeert te krijgen tot een sleutel die niet in een woordenboek voorkomt.

  5. EOFError: Wordt gegenereerd wanneer Python het einde van het bestand (EOF) tegenkomt tijdens het lezen van invoer, meestal van een read()-aanroep.

  6. ArithmeticError: een superklasse voor rekenkundige uitzonderingen, zoals ZeroDivisionError, OverflowError en FloatingPointError.

Soms kan het nodig zijn om door de gebruiker gedefinieerde uitzonderingen te gebruiken, zoals een pass- instructie in een blok waar een uitzondering wordt verwacht. Dit moet oordeelkundig worden gedaan, omdat het andere uitzonderingen zou kunnen onderdrukken.

We hebben u de bovenstaande lijst met veelvoorkomende uitzonderingsfouten gegeven, zodat u deze als leidraad kunt gebruiken voor het afhandelen van mogelijke uitzonderingen bij het schrijven van uw Python- programma's.

Houd er rekening mee dat de meeste uitzonderingen kunnen worden opgevangen en afgehandeld, maar er moet voor worden gezorgd dat de meest recente oproep wordt afgehandeld om geneste afhandeling van andere uitzonderingsgevallen te voorkomen.

In de volgende sectie zullen we kijken naar enkele use-cases van het try-except-blok in Python. Laten we erop ingaan!

5 Gebruiksgevallen van Try-Except Block

Try Except block is een van de meest gebruikte technieken voor het afhandelen van fouten. Hieronder volgen enkele gebruiksgevallen van het Try Except-blok in Python:

1. Bestandsafhandeling met Try Except

Wanneer u met bestanden werkt, is er altijd een kans dat het bestand niet bestaat of zich niet op de locatie bevindt van waaruit uw script probeert er toegang toe te krijgen.

De volgende code veroorzaakt een uitzondering wanneer we proberen een bestand te openen dat niet aanwezig is.

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

In deze code proberen we een bestand met de naam 'file.txt' te openen en te lezen. Als 'file.txt' niet bestaat, treedt er een uitzondering op, maar in plaats van een fout bij het stoppen van uw programma, wordt 'Sorry, dit bestand bestaat niet' afgedrukt.

Python Try Except: stapsgewijze voorbeelden

2. Gebruikersinvoer verwerken met Try Except

Gebruikersinvoer is een ander gebied waarop vaak uitzonderingen voorkomen. Gebruikers kunnen gegevens in een onverwacht formaat aanleveren of een invoer geven die buiten het acceptabele bereik valt.

Het volgende voorbeeld laat zien hoe gebruikersinvoer moet worden verwerkt met een try-except-blok:

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

In deze code vragen we de gebruiker om zijn leeftijd in te voeren. Als ze iets invoeren dat niet kan worden geconverteerd naar een geheel getal (zoals een woord of een letter), treedt er een uitzondering op, maar in plaats van dat het programma crasht, zal het afdrukken 'Dat is geen geldige leeftijd. Voer alstublieft een nummer in.'

Python Try Except: stapsgewijze voorbeelden

3. Toegang tot niet-bestaande woordenboeksleutels

In Python is een woordenboek een veranderlijke, ongeordende verzameling sleutel-waardeparen , waarbij elke sleutel uniek moet zijn.

Wanneer u toegang probeert te krijgen tot een sleutel die niet bestaat in een woordenboek, genereert Python een KeyError. U kunt proberen en behalve gebruiken om deze uitzondering af te handelen, zoals weergegeven in het onderstaande voorbeeld:

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

In deze code probeert u de waarde voor 'key3' uit een woordenboek af te drukken. Als 'key3' niet in het woordenboek voorkomt, treedt er een uitzondering op, maar in plaats van dat het programma stopt met een fout, wordt 'De sleutel bestaat niet in het woordenboek' afgedrukt.

Python Try Except: stapsgewijze voorbeelden

4. Een tekenreeks omzetten in een geheel getal

Het kan voorkomen dat u een tekenreeks naar een geheel getal wilt converteren . Maar als de string geen geldig geheel getal vertegenwoordigt, zal Python een ValueError genereren.

U kunt proberen en behalve gebruiken om deze zaak af te handelen:

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

In dit geval kan 'hallo' niet worden geconverteerd naar een geheel getal, dus roept Python een ValueError op en drukt af 'Die string kan niet worden geconverteerd naar een geheel getal'.

Python Try Except: stapsgewijze voorbeelden

5. Een module importeren

Bij het importeren van een module in Python is het mogelijk dat de module niet bestaat of niet is geïnstalleerd. Python zal in dergelijke gevallen een ImportError genereren.

Om deze zaak af te handelen, kunt u de volgende code gebruiken:

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

In het bovenstaande voorbeeld, als 'some_module' niet is geïnstalleerd of niet bestaat, zal Python een ImportError genereren en afdrukken 'De module 'some_module' is niet geïnstalleerd.'

Python Try Except: stapsgewijze voorbeelden

Bekijk de volgende video voor meer informatie over het schrijven van code in Python en het omgaan met verwachtingen:

Vervolgens bekijken we enkele best practices voor het afhandelen van uitzonderingen. Laten we erin duiken!

Best practices voor het omgaan met uitzonderingen

In deze sectie hebben we een aantal best practices opgesomd voor het afhandelen van uitzonderingen met het Try Except-blok. Enkele best practices voor het afhandelen van uitzonderingen zijn:

1. Wees specifiek met uitzonderingen

Wanneer u uw code schrijft, is het cruciaal om uitzonderingen zo specifiek mogelijk op te vangen. Dit betekent dat u in plaats van alleen een algemene uitzonderingsnaam te vangen, het eigenlijke type uitzondering moet vangen dat u verwacht.

Op deze manier weet u precies wat voor soort fout er is opgetreden en kunt u deze op de juiste manier afhandelen.

2. Onderdruk geen uitzonderingen

Als je te maken hebt met uitzonderingen, kom je misschien in de verleiding om het gewoon op te vangen met een uitzonderingshandler en er niets mee te doen. Dit is over het algemeen een slecht idee.

Als er een fout optreedt, is dat meestal omdat er iets moet worden opgelost. Als u de uitzonderingsklasse onderdrukt, kan de fout onopgemerkt blijven en later problemen veroorzaken.

3. Gebruik Eindelijk voor Cleanup Code

Soms heb je wat code die je moet uitvoeren, ongeacht of er een fout is opgetreden of niet. Dit kan zoiets zijn als het sluiten van een bestand of het vrijgeven van enkele bronnen.

In deze gevallen kunt u een final- blok gebruiken. De code in het final- blok zal hoe dan ook worden uitgevoerd, dus het is een geweldige plek om je opschooncode te plaatsen.

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

4. Maak indien nodig uitzonderingen

Er kunnen situaties zijn waarin u de gebruiker van uw code moet laten weten dat er iets mis is gegaan.

In deze gevallen kunt u een uitzondering indienen. Hierdoor wordt de uitvoering van uw code onmiddellijk stopgezet en wordt de gebruiker geïnformeerd dat er een fout is opgetreden.

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

Als u deze best practices begrijpt en implementeert, wordt uw code robuuster, gemakkelijker te debuggen en voorkomt u onverwachte crashes.

Laatste gedachten

Om het af te ronden, weten hoe je try en except in Python moet gebruiken, helpt echt wanneer je je code schrijft en daarin uitzonderingen tegenkomt.

Ze laten uw programma fouten soepel afhandelen, in plaats van plotseling te stoppen. Het is een manier om ervoor te zorgen dat uw code verrassingen aankan en doorgaat.

En als je try and exception gebruikt, laat het zien dat je echt nadenkt over wat er mis kan gaan en je daarop voorbereidt. Neem dus de tijd om deze tools te leren — ze zijn super handig als je code schrijft in Python!


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten