Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python Exception Handling:probeer, vang, eindelijk &verhoog [Voorbeeld]

Wat is een uitzonderingsbehandeling in Python?

Een uitzondering is een fout die optreedt op het moment van uitvoering van een programma. Tijdens het uitvoeren van een programma genereert Python echter 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 plaatsvinden, dit type gebeurtenis niet vaak voorkomt. Wanneer de methode de uitzondering niet aankan, wordt deze naar zijn aanroepfunctie gegooid. Uiteindelijk, wanneer een uitzondering uit de hoofdfunctie wordt weggegooid, wordt het programma abrupt beëindigd.

In deze tutorial over uitzonderlijke hantering van Python leer je:

  • Wat is een uitzondering in Python?
  • Veelvoorkomende uitzonderingen
  • Waarom zou je Exceptions gebruiken?
  • Uitzonderingsregels
  • Afhandelingsmechanisme voor Python-uitzonderingen
  • Python Try-instructie
  • Python-vangstverklaring
  • Verhoog de instructie in Python
  • Belangrijke Python-fouten
  • Andere belangrijke Python-uitzonderingen
  • Fout versus uitzonderingen

Veelvoorkomende voorbeelden van uitzonderingen:

  • Delen door nul
  • Toegang 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.
  • Opname bij geldautomaat van meer dan het beschikbare bedrag

Waarom zou je Exceptions gebruiken?

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

  • Afhandeling van uitzonderingen stelt u in staat om foutafhandelingscode te scheiden van normale code.
  • Een uitzondering is een Python-object dat een fout vertegenwoordigt.
  • Net als bij code-opmerkingen, helpen uitzonderingen je om jezelf eraan te herinneren wat het programma verwacht.
  • Het verduidelijkt de code en verbetert de leesbaarheid.
  • Hiermee kunt u consequenties stimuleren, aangezien de foutafhandeling op één plaats en op één manier plaatsvindt.
  • Een uitzondering is een handige methode voor het afhandelen van foutmeldingen.
  • In Python kun je een uitzondering in het programma maken door de methode voor het verhogen van uitzonderingen te gebruiken.
  • Als u een uitzondering opheft, kunt u de huidige code-uitvoering onderbreken en de uitzondering weer normaal maken totdat deze is afgehandeld.
  • Uitzonderingen verwerken voor componenten die ze niet rechtstreeks aankunnen.

Uitzonderingsregels

Hier zijn enkele essentiële regels voor het afhandelen van uitzonderingen in Python:

  • Uitzonderingen moeten klasseobjecten zijn
  • Voor klasse-uitzonderingen kunt u de instructie try 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 gevonden, worden uitzonderingen genoemd en zijn niet onvoorwaardelijk fataal.

Afhandelingsmechanisme voor Python-uitzonderingen

Afhandeling van uitzonderingen wordt beheerd door de volgende 5 trefwoorden:

  1. probeer
  2. vangen
  3. eindelijk
  4. gooi

Python Try-instructie

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

Als er tijdens de uitvoering van het try-statement geen uitzonderingen zijn opgetreden, negeert de interpreter de exception-handlers voor dat specifieke try-statement.

Als er zich een uitzondering voordoet in een try-suite, verloopt de try-suite en wordt de programmacontrole overgedragen aan de overeenkomende behalve de handler die de try-suite volgt.

Syntax:
try:
statement(s)

De vangstverklaring

Vangstblokken nemen één argument tegelijk, wat het type uitzondering is dat het waarschijnlijk zal vangen. Deze argumenten kunnen variëren van een specifiek type uitzondering dat kan worden gevarieerd tot een allesomvattende categorie uitzonderingen.

Regels voor vangstblok:

  • U kunt een catch-blok definiëren met het trefwoord catch
  • De parameter Catch Exception staat altijd tussen haakjes
  • Het vertegenwoordigt altijd het type uitzondering dat blokhandvatten opvangt.
  • Er wordt een code voor het afhandelen van uitzonderingen geschreven tussen twee {} accolades.
  • Je kunt meerdere catch-blokken in één try-blok plaatsen.
  • Je kunt een catch-blok pas 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());
}

Tot slot in Python

Ten slotte wordt het blok altijd uitgevoerd, ongeacht of er een uitzondering wordt gegenereerd of niet. Met het laatste sleutelwoord kun je 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 uitgevoerd vóór de try-instructie.

Verhoog statement in Python

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

Syntaxis:

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

In deze syntaxis is het argument optioneel en op het moment van uitvoering is de waarde van het uitzonderingsargument altijd geen.

Voorbeeld:

Een Python-uitzondering kan elke waarde zijn, zoals een tekenreeks, klasse, getal of een object. De meeste van deze uitzonderingen die door de Python-kern worden gegenereerd, zijn klassen met een argument dat een instantie van de klasse is.

Belangrijke Python-fouten

Fouttype Beschrijving
Rekenfout ArithmeticError fungeert als een basisklasse voor alle rekenkundige uitzonderingen. Het wordt verhoogd voor fouten in rekenkundige bewerkingen.
ImportError ImportError treedt op wanneer u een module probeert te importeren die niet aanwezig is. Dit soort uitzonderingen doen zich voor als je een typefout hebt gemaakt in de modulenaam of de module die niet in het standaardpad staat.
IndexError Een IndexErroris die optreedt wanneer u probeert te verwijzen naar een reeks die buiten het bereik ligt.
KeyError Als een specifieke sleutel niet in een woordenboek wordt gevonden, wordt een KeyError-uitzondering gegenereerd.
NameError Er wordt een NameError gegenereerd wanneer er naar een naam wordt verwezen in code die nooit bestaat in de lokale of globale naamruimte.
ValueError Waardefout treedt op wanneer een functie of ingebouwde bewerking een argument ontvangt dat van het juiste type kan zijn, maar geen geschikte waarde heeft.
EOFerror Dit soort fouten treedt op wanneer een van de ingebouwde functies (input() of raw_input()) een EOF-voorwaarde bereikt zonder gegevens te lezen.
ZeroDivisonError Dit type fout treedt op wanneer deling of module door nul plaatsvindt voor alle numerieke typen.
IOError- Dit soort fouten treedt op wanneer een invoer/uitvoerbewerking mislukt.
syntaxError SyntaxErrors die optreden als er een fout is in de Python-syntaxis.
IndentationError Deze fout trad op wanneer inspringing niet correct is gedefinieerd

Andere belangrijke Python-uitzonderingen

Uitzondering Beschrijving
AritmeticException Rekenfout, zoals delen door nul.
ArraylndexOutOfBoundsException Array-index is buiten bereik.
ArrayStoreException Toewijzing helpt u aan het array-element van een incompatibel type.
ClassCastException Ongeldige cast
MlegalMonitorStateException Illegale monitorbewerking, zoals wachten op een ontgrendelde thread.
MlegalStateException Omgeving of applicatie is in verkeerde staat.
ClassNotFoundException Klasse niet gevonden.
CloneNotSupportedException Poging om een ​​object te klonen dat de Cloneable-interface niet implementeert.
Illegale AccessException Toegang tot een klas is geweigerd.
InstantiationException Doet zich voor wanneer u probeert een object van een interface of abstracte klasse te maken.
CloneNotSupportedException Poging om een ​​object te klonen dat de interface niet implementeert.

Fout versus uitzonderingen

Fout Uitzonderingen
Alle fouten in Python zijn van het ongecontroleerde type. Uitzonderingen omvatten zowel het aangevinkte als het niet-gecontroleerde type.
Er treden fouten op tijdens runtime die niet bekend zijn bij 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:
OutofMemoryError
Voorbeelden:
Aangevinkte 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 voorkomen, dit type gebeurtenis niet vaak voorkomt.
  • Veelvoorkomende voorbeelden van uitzonderingen zijn 1) Deling door nul, 2) Toegang tot een bestand dat niet bestaat, 3) Toevoeging van twee incompatibele typen.
  • Een uitzondering is een Python-object dat een fout vertegenwoordigt.
  • Een try-statement bevat trefwoord try, gevolgd door een dubbele punt (:) en een reeks code waarin uitzonderingen kunnen voorkomen. Het heeft een of meer clausules.
  • Catch-blokken gebruiken één argument tegelijk, wat het type uitzondering is dat waarschijnlijk wordt opgevangen.
  • De raise-instructie specificeert een argument dat het exception-object initialiseert.
  • Ten slotte wordt blok altijd uitgevoerd, ongeacht of er een uitzondering wordt gegenereerd of niet.

Python

  1. Python-gegevenstypen
  2. Python-operators
  3. Python pass-instructie
  4. Python-functieargumenten
  5. Python-woordenboek
  6. Afhandeling van Python-uitzonderingen met behulp van de instructie try, behalve en tenslotte
  7. Python-iterators
  8. Python-sluitingen
  9. Afhandeling van Java-uitzonderingen
  10. Java proberen ... vangen
  11. C++ Exception Handling:Try, Catch, Throw Voorbeeld