Python Afhandeling van uitzonderingen: proberen, vangen, uiteindelijk en verhogen [Voorbeeld]

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 ImportError treedt op wanneer u een module probeert te importeren die niet aanwezig is. Dit soort uitzonderingen doet zich voor als u een typefout heeft gemaakt in de modulenaam of de module die niet aanwezig is 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 Treedt op wanneer u probeert een object van een interface of abstracte klasse te maken.
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.

Samenvatting

  • Een uitzondering is een fout die is opgetreden tijdens de uitvoering van een programma.
  • De uitzondering geeft aan dat, hoewel de gebeurtenis kan optreden, dit type gebeurtenis niet vaak voorkomt.
  • Veel voorkomende voorbeelden van uitzonderingen zijn 1) Delen door nul, 2) Toegang krijgen tot een bestand dat niet bestaat, 3) Toevoeging van twee incompatibele typen.
  • Een uitzondering is een Python object dat een fout vertegenwoordigt.
  • 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.
  • Catch-blokken nemen één argument tegelijk, wat het type uitzondering is dat waarschijnlijk wordt onderschept.
  • De raise-instructie specificeert een argument dat het uitzonderingsobject initialiseert.
  • Ten slotte wordt het blok altijd uitgevoerd, ongeacht of er een uitzondering wordt gegenereerd of niet.