Python Kivételkezelés: próbálkozás, elkapás, végül és emelés [Példa]

Mi az a kivételkezelés Python?

Kivételt képez a program végrehajtása során fellépő hiba. A program futtatása közben azonban Python kivételt generál, amelyet kezelni kell, hogy elkerülje a program összeomlását. In Python nyelv, a kivételek automatikusan aktiválódnak hiba esetén, vagy kiválthatja és elfoghatja őket a kódja.

A kivétel azt jelzi, hogy bár az esemény megtörténhet, az ilyen típusú események ritkán fordulnak elő. Ha a metódus nem tudja kezelni a kivételt, akkor a hívó függvényébe kerül. Végül, amikor egy kivételt kidobnak a fő funkcióból, a program hirtelen leáll.

Gyakori példák a kivételekre

  • Osztás nullával
  • Nem létező fájl elérése.
  • Két összeférhetetlen típus hozzáadása
  • Egy sorozat nem létező indexéhez próbál hozzáférni
  • A tábla eltávolítása a leválasztott adatbázis-kiszolgálóról.
  • A rendelkezésre álló összeget meghaladó ATM-felvétel

Miért érdemes a kivételeket használni?

Itt vannak a kivételek alkalmazásának okai Python:

  • A kivételkezelés lehetővé teszi a hibakezelő kód és a normál kód elkülönítését.
  • Kivételt képez a Python tárgy ami hibát jelent.
  • A kódhoz fűzött megjegyzésekhez hasonlóan a kivételek segítik Önt abban, hogy emlékeztesse magát a program elvárásaira.
  • Tisztázza a kódot és javítja az olvashatóságot.
  • Lehetővé teszi a következmények ösztönzését, mivel a hibakezelés egy helyen és egy módon történik.
  • Kivételt képez a hibaüzenetek kényelmes kezelési módja.
  • In Python, kivételt emelhet ki a programban a kivétel kivétel módszerével.
  • A kivétel felemelése segít megszakítani az aktuális kódvégrehajtást, és visszaállítja a kivételt a várt értékre, amíg nem kezelik.
  • Kivételek feldolgozása olyan összetevők esetében, amelyek nem tudják közvetlenül kezelni őket.

Kivételek szabályai

Íme néhány alapvető szabály Python kivételkezelés:

  • A kivételeknek osztályobjektumoknak kell lenniük
  • Osztálykivételek esetén használhatja a try utasítást kivételes záradékkal, amely egy adott osztályt említ.
  • Még ha egy utasítás vagy kifejezés szintaktikailag helyes is, akkor is hibát jelezhet, amikor megpróbálják végrehajtani.
  • A végrehajtás során talált hibákat kivételnek nevezzük, és nem feltétlenül végzetesek.

Python Kivételkezelési mechanizmus

A kivételkezelést a következő 5 kulcsszó kezeli:

  1. megpróbál
  2. fogás
  3. végül
  4. dobás

Python Próbálja ki a nyilatkozatot

A try utasítás tartalmazza a try kulcsszót, majd egy kettőspontot (:) és egy kódkészletet, amelyben kivételek fordulhatnak elő. Egy vagy több záradéka van.

A try utasítás végrehajtása során, ha akkor nem történt kivétel, az értelmező figyelmen kívül hagyja az adott try utasítás kivételkezelőit.

Abban az esetben, ha bármilyen kivétel történik egy try suite-ban, a try suite lejár, és a programvezérlés átkerül az egyező, kivéve a try suite-t követő kezelőhöz.

Syntax:
try:
statement(s)

A fogási nyilatkozat

A fogási blokkok egyszerre csak egy argumentumot vesznek igénybe, ez az a kivételtípus, amelyet valószínűleg elkap. Ezek az érvek a kivételek egy bizonyos típusától, amely variálható, a kivételek átfogó kategóriájáig terjedhetnek.

A fogási blokk szabályai:

  • Fogási blokkot a catch kulcsszó használatával határozhat meg
  • A Catch Exception paraméter mindig zárójelben van
  • Mindig azt a kivételtípust képviseli, amelyet a catch blokk kezel.
  • Egy kivételkezelő kódot két {} kapcsos zárójel közé írunk.
  • Egyetlen próbablokkon belül több fogási blokkot is elhelyezhet.
  • Catch blokkot csak a try blokk után használhat.
  • Az összes fogási blokkot alosztálytól szuperosztály kivételig kell rendezni.

Példa:

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

Végre nyilatkozat be Python

Végül a blokk mindig végrehajtódik, függetlenül attól, hogy kivételt dobtak-e vagy sem. Az utolsó kulcsszó lehetővé teszi egy kódblokk létrehozását, amely a try-catch blokkot követi.

Végül a záradék nem kötelező. Célja olyan tisztítási műveletek meghatározása, amelyeket minden körülmények között végre kell hajtani.

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

Végül a záradék a try utasítás előtt kerül végrehajtásra.

Nyilatkozat emelése Python

A raise utasítás megad egy argumentumot, amely inicializálja a kivételobjektumot. Itt vessző követi a kivétel nevét, és a vesszőt követő argumentum vagy sor.

Syntax:

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

Ebben a szintaxisban az argumentum nem kötelező, és a végrehajtáskor a kivétel argumentum értéke mindig nincs.
Példa:
A Python kivétel lehet bármilyen érték, például karakterlánc, osztály, szám vagy objektum. A legtöbb ilyen kivételt, amelyeket a Python core osztályok olyan argumentummal, amely az osztály példánya.

fontos Python hibák

Hiba típusa Leírás
Aritmetikai hiba Az ArithmeticError minden aritmetikai kivétel alaposztályaként működik. Az aritmetikai műveletek hibáira vetődik fel.
ImportError Az ImportError üzenet akkor jelenik meg, amikor olyan modult próbál importálni, amely nem jelenik meg. Ez a fajta kivétel akkor fordul elő, ha gépelési hibát vétett a modulnévben, vagy abban a modulban, amely nem szerepel a szabványos elérési útban.
IndexError IndexErroris jelenik meg, amikor olyan sorozatra próbál hivatkozni, amely kívül esik a tartományon.
KeyError Ha egy adott kulcs nem található a szótárban, KeyError kivétel jelenik meg.
NameError A NameError akkor jelenik meg, ha egy névre olyan kódban hivatkoznak, amely soha nem létezik a helyi vagy globális névtérben.
ValueError Értékhiba akkor lép fel, ha egy függvény vagy beépített művelet olyan argumentumot kap, amely esetleg megfelelő típusú, de nem rendelkezik megfelelő értékkel.
EOFhiba Ez a fajta hiba akkor jelentkezik, ha az egyik beépített függvény (input() vagy raw_input()) elér egy EOF feltételt anélkül, hogy adatokat olvasna.
ZeroDivisonError Ez a fajta hiba akkor jelentkezik, ha nullával való osztás vagy modul minden numerikus típusnál megtörténik.
IOError- Ez a fajta hiba akkor jelentkezik, ha egy bemeneti/kimeneti művelet meghiúsul.
szintaktikai hiba SyntaxErrors akkor jelentkezik, ha hiba van a fájlban Python szintaxis.
Identification Error Ez a hiba akkor jelentkezik, ha a behúzás nincs megfelelően meghatározva

Egyéb fontos Python kivételek

kivétel Leírás
Számtani kivétel Aritmetikai hiba, például osztás nullával.
ArraylndexOutOfBoundsException A tömb indexe határon kívül van.
ArrayStoreException A hozzárendelés egy nem kompatibilis típusú tömbelemhez segít.
ClassCastException Érvénytelen szereposztás
MlegalMonitorStateException A monitor illegális működése, mint a feloldatlan szálra való várakozás.
MlegalStateException A környezet vagy az alkalmazás rossz állapotban van.
ClassNotFoundException Az osztály nem található.
CloneNotSupportedException Próbálja meg klónozni egy olyan objektumot, amely nem valósítja meg a klónozható felületet.
Illegális hozzáférés kivétel Az osztályhoz való hozzáférés megtagadva.
PéldányosításKivétel Akkor fordul elő, amikor megpróbál létrehozni egy interfész vagy absztrakt osztály objektumát.
CloneNotSupportedException Próbálja meg klónozni egy objektumot, amely nem valósítja meg az interfészt.

Hiba vs. Kivételek

hiba kivételek
Minden hiba benne van Python a nem ellenőrzött típus. Ez alól kivételt képeznek a bejelölt és a nem bejelölt típusok is.
A futási időben olyan hibák fordulnak elő, amelyek a fordító számára ismeretlenek. A kivételeket a try-catch blokkok segítségével lehet helyreállítani.
A hibákat többnyire az a környezet okozza, amelyben az alkalmazás fut. Maga az alkalmazás is kivételeket okoz.
Példák:
OutofMemory Error
Példák:
Ellenőrzött kivételek, SQL kivétel, NullPointerException stb.

Összegzésként

  • Kivételt képez a program végrehajtása során fellépő hiba.
  • A kivétel azt jelzi, hogy bár az esemény megtörténhet, az ilyen típusú események ritkán fordulnak elő.
  • Gyakori példák a kivételekre: 1) nullával való osztás, 2) nem létező fájl elérése, 3) két nem kompatibilis típus hozzáadása.
  • Kivételt képez a Python objektum, amely hibát jelent.
  • A try utasítás tartalmazza a try kulcsszót, majd egy kettőspontot (:) és egy kódkészletet, amelyben kivételek fordulhatnak elő. Egy vagy több záradéka van.
  • A fogási blokkok egy-egy argumentumot vesznek igénybe, ez az a kivételtípus, amelyet valószínűleg elkap.
  • A raise utasítás megad egy argumentumot, amely inicializálja a kivételobjektumot.
  • Végül a blokk mindig végrehajtódik, függetlenül attól, hogy kivételt dobtak-e vagy sem.

Foglald össze ezt a bejegyzést a következőképpen: