Python Uitzonderingsafhandeling: probeer, behalve, tenslotte, gooi een uitzondering op

โšก Slimme samenvatting

Python Met exception handling kan je programma reageren op runtimefouten in plaats van vast te lopen. Hier leer je hoe `try`, `except`, `finally` en `raise` werken, waarom exceptions belangrijk zijn en welke veelvoorkomende ingebouwde fouttypen je zult tegenkomen.

  • โš ๏ธ Wat het is: Een uitzondering is een runtimefout die Python Geeft een foutmelding als er iets misgaat.
  • ๐Ÿ›ก๏ธ probeer / behalve: Een `try`-blok voert risicovolle code uit; `except` vangt de uitzondering op en handelt deze af.
  • ๐Ÿงน Tenslotte: Een finally-blok wordt altijd uitgevoerd, ongeacht of er een uitzondering is opgetreden.
  • ๐Ÿš€ salarisverhoging: Met de `raise`-instructie kun je opzettelijk een uitzondering veroorzaken.
  • ๐Ÿ“‹ Fouttypen: Veelvoorkomende uitzonderingen zijn onder andere ValueError, KeyError, IndexError en ZeroDivisionError.
  • ๐Ÿค– AI-ondersteuning: AI-tools zoals Copilot genereren try-except-blokken en suggereren fouttypen.

Python uitzondering Handling

Wat is een uitzonderingsafhandeling? Python?

Een uitzondering is een fout die optreedt tijdens de uitvoering van een programma. Wanneer u echter een programma uitvoert, Python genereert een uitzondering die moet worden afgehandeld om te voorkomen dat uw programma crasht. In Python taal worden uitzonderingen automatisch geactiveerd bij fouten, of ze kunnen worden geactiveerd en onderschept door uw code.

De uitzondering geeft aan dat, hoewel de gebeurtenis kan optreden, dit type gebeurtenis niet vaak voorkomt. Wanneer de methode de uitzondering niet kan afhandelen, wordt deze naar de callerfunctie gegooid. Uiteindelijk, wanneer een uitzondering uit de hoofdfunctie wordt verwijderd, wordt het programma abrupt beรซindigd.

Veelvoorkomende voorbeelden van uitzonderingen

  • Deling door nul
  • Toegang krijgen tot een bestand dat niet bestaat.
  • Toevoeging van twee incompatibele typen
  • Proberen toegang te krijgen tot een niet-bestaande index van een reeks
  • De tabel verwijderen van de niet-verbonden databaseserver.
  • Geldopname van meer dan het beschikbare bedrag

Waarom zou u uitzonderingen gebruiken?

Hier volgen de redenen voor het gebruik van uitzonderingen in Python:

  • Met uitzonderingsafhandeling kunt u de foutafhandelingscode scheiden van de normale code.
  • Een uitzondering is een Python object wat een fout vertegenwoordigt.
  • Net als bij codecommentaar helpen uitzonderingen u eraan te herinneren wat het programma verwacht.
  • Het verduidelijkt de code en verbetert de leesbaarheid.
  • Hiermee kunt u consequenties stimuleren, omdat de foutafhandeling op รฉรฉn plaats en op รฉรฉn manier plaatsvindt.
  • Een uitzondering is een handige methode voor het afhandelen van foutmeldingen.
  • In Python, kunt u een uitzondering in het programma genereren met behulp van de methode raise exception.
  • Door een uitzondering op te werpen, kunt u de huidige code-uitvoering verbreken en de uitzondering terugbrengen naar verwachting totdat deze wordt afgehandeld.
  • Uitzonderingen verwerken voor componenten die deze niet rechtstreeks kunnen afhandelen.

Regels voor uitzonderingen

Hier zijn enkele essentiรซle regels van Python afhandeling van uitzonderingen:

  • Uitzonderingen moeten klasseobjecten zijn
  • Voor klasse-uitzonderingen kunt u de try-instructie gebruiken met een uitzonderingsclausule die een bepaalde klasse vermeldt.
  • Zelfs als een instructie of expressie syntactisch correct is, kan deze een fout weergeven wanneer wordt geprobeerd deze uit te voeren.
  • Fouten die tijdens de uitvoering worden aangetroffen, worden uitzonderingen genoemd en zijn niet onvoorwaardelijk fataal.

Python Afhandelingsmechanisme voor uitzonderingen

Uitzonderingsverwerking wordt beheerd door de volgende 5 trefwoorden:

  1. proberen
  2. vangst
  3. Tenslotte
  4. Gooi

Python Probeer Verklaring

Een try-instructie bevat het trefwoord try, gevolgd door een dubbele punt (:) en een reeks code waarin uitzonderingen kunnen voorkomen. Het bevat een of meer clausules.

Als er tijdens de uitvoering van de try-instructie geen uitzonderingen zijn opgetreden, negeert de tolk de uitzonderingshandlers voor die specifieke try-instructie.

Als er in een try-suite een uitzondering optreedt, verloopt de try-suite en wordt de programmabesturing overgedragen aan de bijbehorende except-handler die volgt op de try-suite.

Syntax:
try:
statement(s)

De vangstverklaring

Catch-blokken nemen รฉรฉn argument tegelijk, wat het type uitzondering is dat waarschijnlijk wordt onderschept. Deze argumenten kunnen variรซren van een specifiek type uitzondering dat kan worden gevarieerd tot een allesomvattende categorie van uitzonderingen.

Regels voor catch-blok:

  • U kunt een catch-blok definiรซren met behulp van het trefwoord catch
  • De parameter Catch Exception staat altijd tussen haakjes
  • Het vertegenwoordigt altijd het type uitzondering dat blokhandles opvangt.
  • Een uitzonderingsafhandelingscode wordt tussen twee {} accolades geschreven.
  • Je kunt meerdere catch-blokken binnen รฉรฉn try-blok plaatsen.
  • Je kunt een catch-blok alleen gebruiken na het try-blok.
  • Alle catch-blokken moeten worden geordend van subklasse tot superklasse-uitzondering.

Voorbeeld:

try
}
catch (ArrayIndexOutOfBoundsException e) {
System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {
System.err.printin("Caught second " + e.getMessage());
}

Eindelijk verklaring in Python

Ten slotte wordt het blok altijd uitgevoerd, ongeacht of er een uitzondering wordt gegenereerd of niet. Met het laatste trefwoord kunt u een codeblok maken dat volgt op een try-catch-blok.

Ten slotte is de clausule optioneel. Het is bedoeld om opruimacties te definiรซren die onder alle omstandigheden moeten worden uitgevoerd.

try:
    raise KeyboardInterrupt
finally:
    print 'welcome, world!'
Output
Welcome, world!
KeyboardInterrupt

Ten slotte wordt de clausule vรณรณr de try-instructie uitgevoerd.

Verklaring inbrengen Python

De raise-instructie specificeert een argument dat het uitzonderingsobject initialiseert. Hier volgt een komma de uitzonderingsnaam en het argument of tupel van het argument dat op de komma volgt.

Syntax:

raise [Exception [, args [, traceback]]]

In deze syntaxis is het argument optioneel en op het moment van uitvoering is de waarde van het uitzonderingsargument altijd nul.
Voorbeeld:
A Python uitzondering kan elke waarde zijn, zoals een tekenreeks, klasse, getal of een object. De meeste van deze uitzonderingen die worden opgeworpen door Python core zijn klassen met een argument dat een instantie van de klasse is.

Belangrijk Python fouten

Fouttype Beschrijving
Rekenfout ArithmeticError fungeert als een basisklasse voor alle rekenkundige uitzonderingen. Het wordt gegenereerd voor fouten in rekenkundige bewerkingen.
Importfout Een ImportError treedt op wanneer u een module probeert te importeren die niet aanwezig is. Dit soort uitzondering doet zich voor als u bijvoorbeeld een module probeert te importeren die niet bestaat.ping Fout in de modulenaam of de module bevindt zich niet in het standaardpad.
IndexFout Er treedt een IndexErro op wanneer u probeert te verwijzen naar een reeks die buiten bereik ligt.
Sleutelfout Wanneer een specifieke sleutel niet in een woordenboek wordt gevonden, ontstaat er een KeyError-uitzondering.
Naamfout Er ontstaat een NameError wanneer er naar een naam wordt verwezen in code die nooit bestaat in de lokale of globale naamruimte.
ValueError Er treedt een waardefout op wanneer een functie of ingebouwde bewerking een argument ontvangt dat mogelijk van het juiste type is, maar geen geschikte waarde heeft.
EOFerror Dit soort fout doet zich voor wanneer een van de ingebouwde functies (input() of raw_input()) een EOF-voorwaarde bereikt zonder gegevens te lezen.
ZeroDivisonFout Dit type fout treedt op wanneer deling of module door nul plaatsvindt voor alle numerieke typen.
IOEerror- Dit soort fout treedt op wanneer een invoer-/uitvoerbewerking mislukt.
syntax error SyntaxErrors die optreden wanneer er een fout is opgetreden in Python syntaxis.
Inspringfout Deze fout treedt op wanneer de inspringing niet correct is gedefinieerd

Ander belangrijk Python Uitzonderingen

uitzondering Beschrijving
Rekenkundige Uitzondering Rekenfouten, zoals delen door nul.
ArraylndexOutOfBoundsException De array-index is buiten het bereik.
ArrayStoreException Toewijzing helpt u bij het array-element van een incompatibel type.
ClassCastUitzondering Ongeldige cast
MlegalMonitorStateException Illegale monitorbewerking, zoals wachten op een ontgrendelde thread.
MlegalStateException Omgeving of applicatie bevindt zich in de verkeerde staat.
ClassNotFoundException Klasse niet gevonden.
CloneNotSupportedException Probeer een object te klonen dat de Cloneable-interface niet implementeert.
Illegale toegangsuitzondering De toegang tot een les wordt geweigerd.
InstantiatieUitzondering Dit treedt op wanneer u probeert een object van een interface of abs te maken.tract-klasse.
CloneNotSupportedException Probeer een object te klonen dat de interface niet implementeert.

Fout versus uitzonderingen

Fout Uitzonderingen
Alle fouten erin Python zijn van het niet-aangevinkte type. Uitzonderingen zijn zowel het aangevinkte als het niet-gecontroleerde type.
Tijdens runtime treden er fouten op die onbekend zijn voor de compiler. Uitzonderingen kunnen worden hersteld door ze af te handelen met behulp van try-catch-blokken.
Fouten worden meestal veroorzaakt door de omgeving waarin een applicatie draait. De applicatie zelf veroorzaakt uitzonderingen.
Voorbeelden:
Onvoldoende geheugen fout
Voorbeelden:
Gecontroleerde uitzonderingen, SQL-uitzondering, NullPointerException, enz.

Veelgestelde vragen

Foutafhandeling is het proces waarbij wordt gereageerd op runtimefouten, zodat uw programma niet vastloopt. Python Het maakt gebruik van try- en except-blokken om uitzonderingen op te vangen en in plaats daarvan herstelcode uit te voeren.

Code Als er een uitzondering optreedt, wordt deze in een try-blok geplaatst. Python Springt naar het bijbehorende except-blok, dat de fout afhandelt en het programma laat verdergaan.

Een finally-blok wordt uitgevoerd ongeacht of er een uitzondering is opgetreden, waardoor het ideaal is voor opruimtaken zoals het sluiten van bestanden of het vrijgeven van resources die altijd moeten plaatsvinden.

De `raise`-instructie veroorzaakt opzettelijk een uitzondering. Je kunt een ingebouwde uitzondering zoals `ValueError` of een aangepaste uitzondering gebruiken om aan te geven dat er een fout is opgetreden.

Fouten, zoals een SyntaxError, kunnen meestal niet worden hersteld en stoppen het programma. Uitzonderingen zijn gebeurtenissen die tijdens de uitvoering plaatsvinden en die je kunt opvangen en afhandelen met try- en except-blokken.

AI-assistenten zoals GitHub Copilot vullen try-except-blokken automatisch aan, suggereren het juiste uitzonderingstype om op te vangen en genereren op een korte beschrijving van je logica opruimcode.

Ja. AI-gestuurde tools kunnen het inpakken automatiseren.ping Vermijd risicovolle code in try-except-blokken, raad specifieke uitzonderingen aan in plaats van een kale except, en voeg logging toe zodat fouten gemakkelijker te debuggen zijn.

Veelvoorkomende ingebouwde uitzonderingen zijn onder andere ValueError, TypeError, KeyError, IndexError, ImportError, NameError en ZeroDivisionError. Elk van deze uitzonderingen duidt op een specifiek runtimeprobleem in uw code.

Vat dit bericht samen met: