Python-poikkeusten käsittely: Yritä, kiinni, lopuksi

Sisällysluettelo:

Anonim

Mikä on poikkeus Pythonissa?

Poikkeuksena on virhe, joka tapahtuu ohjelman suorituksen yhteydessä. Ohjelman suorituksen aikana Python kuitenkin luo poikkeuksen, joka tulisi käsitellä, jotta ohjelma ei kaatuu. Python-kielellä poikkeukset käynnistyvät automaattisesti virheiden yhteydessä, tai koodisi voi laukaista ja siepata ne.

Poikkeus osoittaa, että vaikka tapahtuma voi tapahtua, tämän tyyppinen tapahtuma tapahtuu harvoin. Kun menetelmä ei kykene käsittelemään poikkeusta, se heitetään soittajatoimintoonsa. Lopulta, kun poikkeus heitetään pois päätoiminnosta, ohjelma lopetetaan äkillisesti.

Tässä Pythonin poikkeuksellisessa käsittelyoppaassa opit:

  • Mikä on poikkeus Pythonissa?
  • Yleisiä esimerkkejä poikkeuksista
  • Miksi sinun pitäisi käyttää poikkeuksia?
  • Poikkeusten säännöt
  • Poikkeuksellinen käsittelymekanismi
    • Kokeile lausunto
    • Saalislausunto
    • Nosta lausunto
  • Tärkeitä Python-virheitä
  • Muita tärkeitä Python-poikkeuksia
  • Virhe vs. poikkeukset

Yleisiä esimerkkejä poikkeuksista:

  • Nollalla jakaminen
  • Pääsy tiedostoon, jota ei ole olemassa.
  • Kahden yhteensopimattoman tyypin lisääminen
  • Yritetään käyttää sekvenssin olematonta hakemistoa
  • Taulukon poistaminen katkaistusta tietokantapalvelimesta.
  • Pankkiautomaatin nostaminen yli käytettävissä olevan määrän

Miksi sinun pitäisi käyttää poikkeuksia?

Tässä on syitä poikkeusten käyttämiseen Pythonissa:

  • Poikkeusten käsittelyn avulla voit erottaa virhekäsittelykoodin normaalista koodista.
  • Poikkeuksena on Python-objekti, joka edustaa virhettä.
  • Kuten koodikommenteissa, poikkeukset auttavat muistuttamaan itseäsi siitä, mitä ohjelma odottaa.
  • Se selkeyttää koodia ja parantaa luettavuutta.
  • Voit stimuloida seurauksia, koska virheiden käsittely tapahtuu yhdessä paikassa ja samalla tavalla.
  • Poikkeus on kätevä tapa käsitellä virheilmoituksia.
  • Pythonissa voit nostaa poikkeuksen ohjelmassa käyttämällä korotuksen poikkeustapaa.
  • Poikkeuksen nostaminen auttaa rikkomaan nykyisen koodin suorituksen ja palauttaa poikkeuksen takaisin odotukseen, kunnes sitä käsitellään.
  • Käsitellään poikkeuksia komponenteille, jotka eivät pysty käsittelemään niitä suoraan.

Poikkeusten säännöt

Tässä on joitain keskeisiä sääntöjä Python-poikkeusten käsittelystä:

  • Poikkeuksena on oltava luokan objektit
  • Luokan poikkeuksille voit käyttää try-lausetta poikkeuslausekkeella, joka mainitsee tietyn luokan.
  • Vaikka lause tai lauseke olisi syntaktisesti oikea, se saattaa näyttää virheen, kun sitä yritetään suorittaa.
  • Suorituksen aikana löydettyjä virheitä kutsutaan poikkeuksiksi, eivätkä ne ole ehdoitta kohtalokkaita.

Poikkeuksellinen käsittelymekanismi

Poikkeusten käsittelyä hallitaan seuraavilla viidellä avainsanalla:

  1. yrittää
  2. ottaa kiinni
  3. lopulta
  4. heittää

Kokeile lausunto

Kokeilulauseke sisältää avainsanayrityksen, jota seuraa kaksoispiste (:) ja koodisarja, jossa voi esiintyä poikkeuksia. Siinä on yksi tai useampi lauseke.

Jos yhtään poikkeusta ei tapahtunut try-käskyn suorittamisen aikana, tulkki jättää huomiotta kyseisen try-käskyn poikkeuskäsittelijät.

Siinä tapauksessa, että kokeilupaketissa esiintyy poikkeuksia, try-paketti vanhenee ja ohjelman hallinta siirtyy vastaavaan lukuun ottamatta try-pakettia seuraavaa käsittelijää.

Syntax:try:statement(s)

Saalislausunto

Saalislohkoissa on yksi argumentti kerrallaan, minkä tyyppisen poikkeuksen se todennäköisesti saa kiinni. Nämä argumentit voivat vaihdella tietyntyyppisestä poikkeuksesta, joka voidaan vaihdella kattavaan poikkeusluokkaan.

Saalislohkon säännöt:

  • Voit määrittää saalislohkon käyttämällä avainsanaa saalis
  • Saalispoikkeus-parametri on aina sulkeissa
  • Se edustaa aina poikkeustyyppiä, jota salpalohko käsittelee.
  • Poikkeusten käsittelykoodi on kirjoitettu kahden {} kiharan aaltosulun väliin.
  • Voit sijoittaa useita saalislohkoja yhteen kokeilulohkoon.
  • Voit käyttää lukituslohkoa vasta kokeilulohkon jälkeen.
  • Kaikki lukituslohkot tulisi tilata alaluokasta yläluokkaan.

Esimerkki:

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

Lopuksi estä

Lopuksi esto suoritetaan aina heitetystä poikkeuksesta riippumatta. Viimeisen avainsanan avulla voit luoda koodilohkon, joka seuraa kokeilunestolohkoa.

Lopuksi lauseke on valinnainen. Sen tarkoituksena on määritellä puhdistustoiminnot, jotka tulisi suorittaa kaikissa olosuhteissa.

try:raise KeyboardInterruptfinally:print 'welcome, world!'OutputWelcome, world!KeyboardInterrupt

Lopuksi lauseke suoritetaan ennen kokeilulausetta.

Nosta lausunto

Korotuslauseke määrittää argumentin, joka alustaa poikkeusobjektin. Tässä pilkku seuraa poikkeusta ja argumenttia tai pilkkua seuraavaa argumenttia.

Syntaksi:

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

Tässä syntaksissa argumentti on valinnainen, ja suoritushetkellä poikkeusargumentin arvo ei ole aina mitään.

Esimerkki:

Python-poikkeus voi olla mikä tahansa arvo, kuten merkkijono, luokka, numero tai objekti. Suurin osa näistä Python-ytimen esiin tuomista poikkeuksista on luokkia, joiden argumentti on luokan esiintymä.

Tärkeitä Python-virheitä

Virhetyyppi Kuvaus
Aritmeettinen virhe ArithmeticError toimii kaikkien aritmeettisten poikkeusten perusluokkana. Se on esitetty aritmeettisten operaatioiden virheiden varalta.
ImportError ImportError nousee, kun yrität tuoda moduulia, jota ei ole. Tällainen poikkeus tapahtuu, jos olet tehnyt kirjoitusvirheen moduulin nimessä tai moduulissa, jota ei ole vakiopolulla.
HakemistoVirhe IndexErroris nousee, kun yrität viitata jaksoon, joka on alueen ulkopuolella.
KeyError Kun tiettyä avainta ei löydy sanakirjasta, KeyError-poikkeus nousee.
NameError NameError nousee, kun nimeen viitataan koodissa, jota ei koskaan ole paikallisessa tai globaalissa nimiavaruudessa.
ValueError Arvovirhe nousee, kun funktio tai sisäänrakennettu operaatio vastaanottaa argumentin, joka voi olla oikean tyyppinen, mutta jolla ei ole sopivaa arvoa.
EOFerror Tällainen virhe ilmenee, kun jokin sisäänrakennetuista toiminnoista (input () tai raw_input ()) saavuttaa EOF-ehdon lukematta tietoja.
ZeroDivisonError Tämän tyyppinen virhe, joka syntyy, kun jako tai moduuli nollalla tapahtuu kaikille numerotyypeille.
IOError- Tällainen virhe ilmeni, kun tulo / lähtö-toiminto epäonnistuu.
syntaksiVirhe Syntaksi Virheet, jotka ilmenevät, kun Python-syntaksissa on virhe.
Sisältövirhe Tämä virhe ilmeni, kun sisennystä ei ole määritelty oikein

Muita tärkeitä Python-poikkeuksia

Poikkeus Kuvaus
Aritmeettinen poikkeus Aritmeettinen virhe, kuten jako nollalla.
ArraylndexOutOfBoundsException Taulukkoindeksi on rajojen ulkopuolella.
ArrayStoreException Määritys auttaa sinua yhteensopimattoman tyyppiseen taulukkoelementtiin.
ClassCastException Virheellinen näyttelijä
MlegalMonitorStateException Näytön laiton toiminta, kuten odottaminen lukitsemattomalla langalla.
MlegalStateException Ympäristö tai sovellus on väärässä tilassa.
ClassNotFoundException Kurssia ei löydy.
CloneNotSupportedException Yritä kloonata objekti, joka ei ota käyttöön Cloneable-käyttöliittymää.
Laiton pääsyn poikkeus Luokkaan pääsy evätään.
Välitön poikkeus Tapahtuu, kun yrität luoda käyttöliittymän tai abstraktin luokan objektin.
CloneNotSupportedException Yritä kloonata objekti, joka ei toteuta käyttöliittymää.

Virhe vs. poikkeukset

Virhe Poikkeukset
Kaikki Pythonin virheet ovat tarkistamatonta tyyppiä. Poikkeuksia ovat sekä tarkistettu että tarkistamaton tyyppi.
Virheitä esiintyy ajon aikana, jotka kääntäjälle ovat tuntemattomia. Poikkeukset voidaan palauttaa käsittelemällä niitä try-catch-lohkojen avulla.
Virheet johtuvat enimmäkseen ympäristöstä, jossa sovellus on käynnissä. Itse sovellus aiheuttaa poikkeuksia.
Esimerkkejä: OutofMemoryError Esimerkkejä: Tarkistetut poikkeukset, SQL-poikkeus, NullPointerException jne.

Yhteenveto

  • Poikkeuksena on virhe, joka tapahtui ohjelman suorituksen aikana.
  • Poikkeus osoittaa, että vaikka tapahtuma voi tapahtua, tämän tyyppinen tapahtuma tapahtuu harvoin.
  • Yleisiä esimerkkejä poikkeuksista ovat 1) Jakaminen nollalla, 2) Pääsy tiedostoon, jota ei ole olemassa, 3) Kahden yhteensopimattoman tyypin lisääminen.
  • Poikkeuksena on Python-objekti, joka edustaa virhettä.
  • Kokeilulauseke sisältää avainsanayrityksen, jota seuraa kaksoispiste (:) ja koodisarja, jossa voi esiintyä poikkeuksia. Siinä on yksi tai useampi lauseke.
  • Saalislohkoissa on yksi argumentti kerrallaan, minkä tyyppisen poikkeuksen se todennäköisesti saa kiinni.
  • Korotuslauseke määrittää argumentin, joka alustaa poikkeusobjektin.
  • Lopuksi, lohko toteutetaan aina riippumatta siitä, onko poikkeus heitetty vai ei.