Python próba, kivéve: lépésről lépésre példák

Programozóként találkozhat olyan helyzetekkel, amikor a kódban hibák vagy kivételek léphetnek fel, ezért alapvető fontosságú, hogy megértse, hogyan kell kezelni a kódban előforduló különböző típusú hibákat. A hibák kezelése a kódolási ciklus döntő része. A Pythonban előforduló hibák kezelésének egyik gyakori módja a try-except technika.

A try-except technika egy try blokkból és egy kivétel blokkból áll. A try blokk tartalmazza azt a kódot, amely hibát vagy kivételt generálhat, és a kivétel blokk tartalmazza a kódot az ilyen hibák vagy kivételek kezelésére.

Python próba, kivéve: lépésről lépésre példák

Ha a kód probléma nélkül fut a try blokkon belül, a kivétel blokk kikerül. Ha azonban hiba vagy kivétel történik a try blokkon belül, akkor a kivétel blokkba írt kód lefut a probléma megoldására.

Ebben a cikkben megvitatjuk a Python try-expect blokkját, a kódírás során előforduló különböző típusú hibákat és kivételeket, valamint azt, hogy hogyan kezelhetjük ezeket a try-except utasításokkal.

Menjünk bele!

Tartalomjegyzék

Milyen típusú hibák vannak a Pythonban?

A Pythonban a hibák nagyjából két fő típusra oszthatók:

1. Szintaktikai hibák : Ezeket elemzési hibáknak is nevezik, amelyeket a kódban lévő helytelen nyelvtan okoz. A szintaktikai hibákat a Python értelmező észleli, és leállítja a program végrehajtását.

A következő egy

print("Hello, world!"

Ebben a példában hiányzik a záró zárójel, így a Python nem érti ezt az utasítást, ezért ez szintaktikai hiba.

Python próba, kivéve: lépésről lépésre példák

Kivételek : Kivételek akkor fordulnak elő, ha valami elromlik a program végrehajtása során, még akkor is, ha a kód szintaktikailag helyes. Ezek lehetnek logikai hibák vagy futásidejű hibák, például érvénytelen bemenetek vagy nullával való osztás.

A következő függvény egy példa a Python kivételére:

print(5 / 0)

Ez a kódsor ZeroDivisionError kivételt fog okozni, amely akkor történik, amikor megpróbál egy számot nullával osztani.

Python próba, kivéve: lépésről lépésre példák

A fenti képen látható, hogy kivétel történt, amikor 5-öt elosztottunk 0-val.

Most, hogy megértette, milyen kivételek léteznek a Pythonban, meglátjuk, hogyan kezelhetjük a kivételeket a Python Try-Except utasításával. Vessünk egy pillantást a Try and Except blokkok szintaxisára a Pythonban a következő részben.

Mi a Try and Except Block szintaxisa?

A függvény szintaxisa határozza meg, hogyan kell használni a függvényt a kódban, beleértve, hogy milyen argumentumokat vesz fel, és mit ad vissza.

Az alábbiakban felsoroltuk a try záradék és a blokk kivételével szintaxisát, valamint az else záradékot és végül a blokkokat.

1. A Try utasítás szintaxisa

A try utasítás lehetővé teszi egy kódblokk hibakeresését. Amikor kódot ír a try blokkba, a Python a program normál részeként hajtja végre.

A try utasítás használatához egyszerűen csatolja a kódot a try blokkba:

try: # Your code here

2. Az Except Clause szintaxisa

Az kivétel záradék kezeli azokat a hibákat, amelyek a try blokk végrehajtása során előfordulhatnak . Megadhatja az elkapni kívánt kivétel típusát, vagy általános kivételt használhat az összes kivétel kezelésére.

A következő szintaxis egy adott kivételtípust mutat:

try: # Your code here except ValueError: # Handle ValueError exception

A kivételosztályok általános vagy több kivételes kezeléséhez használhatja az alábbi szintaxist:

try: # Your code here except Exception: # Handle any exception

3. Az Else záradék/blokk szintaxisa

Az else záradék lehetővé teszi a kódblokk végrehajtását, ha nincs hiba a try blokkban.

Egy else záradék használatához helyezze azt a kivétel blokk mögé az alábbiak szerint:

try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors

4. A Végül blokk szintaxisa

Az utolsó blokk lehetővé teszi a kód végrehajtását, függetlenül a try and kivéve blokkok eredményétől . Ez hasznos lehet olyan műveleteknél, amelyeket szeretne végrehajtani, függetlenül attól, hogy történt-e kivétel.

A Végül blokk használatához helyezze az else blokk mögé:

try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors finally: # Code to execute regardless of the result of the try and except blocks

A fenti szintaxis működés közbeni megjelenítéséhez egy példát tekintünk meg a kivételek kezelésére a Python try-except blokkjával.

Kivételek kezelése Try-Except segítségével Pythonban

Hiba esetén a Python rendszerint leáll, és hibaüzenetet generál. Több kivételt is kezelhet a try and kivéve blokk használatával.

Az alábbi példában a nullával való osztást kezeljük, amely korábban keletkezett, amikor 5-öt osztunk 0-val.

try: print(5 / 0) except ZeroDivisionError: print("You can't divide by zero!")

Ebben a kódban kivétel történik, de a program továbbra is fut, és kiírja a „Nem lehet nullával osztani!” ahelyett, hogy egy hibával megállna.

Python próba, kivéve: lépésről lépésre példák

A próba és kivétel blokkok használatával szabályozhatja a program menetét. Egyes kivételek kezelésével hasznos visszajelzést adhat a felhasználónak, és a program futását folytathatja, ha hiba jelenik meg.

A fenti példában láthatja, hogy a ZeroDivisionError beépített kivételt használtuk az eset kezelésére. Ehhez hasonlóan vannak más típusú beépített kivételek is.

Ha ismeri ezeket a kivételtípusokat, akkor eldöntheti, hogy melyik elvárást használja, ha hibába ütközik a Python-kódban, ezért vessünk egy pillantást néhány kivételre a következő részben.

Melyek a beépített kivételek típusai?

A Pythonban a kivételek a BaseException osztályból származó osztály példányai. Ha hibákat észlel, a Python kivételt állít fel. Számos beépített kivétel van, amelyekkel valószínűleg találkozni fog, miközben programokat ír Pythonban.

Nézzünk meg néhányat a leggyakoribbak közül:

  1. ZeroDivisionError: Ez akkor fordul elő, amikor megpróbál egy számot nullával osztani.

  2. NameError: Ez akkor jelenik meg, ha olyan változót vagy függvényt próbál meg használni, amely még nincs definiálva.

  3. ValueError : Akkor fordul elő, ha egy megfelelő típusú argumentumot ad át, de érvénytelen értékkel.

  4. TypeError : Ez akkor fordul elő, ha rossz adattípusú argumentumot ad át.

  5. FileNotFoundError : Akkor fordul elő, ha nem létező fájlt próbál megnyitni vagy hozzáférni.

  6. ImportError : Akkor jelenik meg, amikor olyan modult vagy csomagot próbál importálni, amely nem létezik vagy nem található.

További lényeges kivételek a következők:

  1. OverflowError: Ez a hiba akkor jelenik meg, ha a számítási eredmény túl nagy ahhoz, hogy megjeleníthető legyen.

  2. FloatingPointError: Ez akkor jelenik meg, ha egy lebegőpontos művelet meghiúsul.

  3. IndexError: Akkor fordul elő, ha olyan indexhez próbál hozzáférni, amely kívül esik egy sorozat tartományán (pl. lista vagy sor).

  4. KeyError: Akkor fordul elő, ha olyan kulcshoz próbál hozzáférni, amely nem létezik a szótárban.

  5. EOFError: Akkor jelenik meg, amikor a Python a fájlvéggel (EOF) találkozik a bemenet olvasása közben, általában read() hívásból.

  6. ArithmeticError: Szuperosztály az aritmetikai kivételekhez, mint például a ZeroDivisionError, OverflowError és a FloatingPointError.

Néha szükség lehet felhasználó által definiált kivételek használatára, például átadási utasításra egy olyan blokkban, ahol kivétel várható. Ezt megfontoltan kell megtenni, mert ez elnyomhat más kivételeket.

Megadtuk Önnek a fenti gyakori kivételes hibák listáját, hogy programként tudja használni.

Kérjük, vegye figyelembe, hogy a legtöbb kivétel elkapható és kezelhető, de ügyelni kell a legutóbbi hívás kezelésére, hogy elkerülje a többi kivételes eset beágyazott kezelését.

A következő részben a Python try-except blokkjával fogunk foglalkozni. Menjünk bele!

5 A Try-Except Block felhasználási esetei

A Try Except blokk az egyik széles körben használt hibakezelési technika. Az alábbiakban bemutatjuk a Python Try Except blokkjának néhány használati esetét:

1. Fájlkezelés a Try Except funkcióval

Amikor fájlokkal dolgozik, mindig fennáll annak a lehetősége, hogy a fájl nem létezik, vagy nem azon a helyen van, ahonnan a szkript megpróbálja elérni.

A következő kód kivételt jelent, amikor olyan fájlt próbálunk megnyitni, amely nincs jelen.

try: with open('file.txt', 'r') as file: print(file.read()) except FileNotFoundError: print('Sorry, this file does not exist.')

Ebben a kódban egy „file.txt” nevű fájlt próbálunk megnyitni és beolvasni. Ha a "file.txt" nem létezik, akkor kivétel történik, de a program leállítását jelző hiba helyett a "Sajnos ez a fájl nem létezik."

Python próba, kivéve: lépésről lépésre példák

2. Felhasználói bevitel kezelése Try Except funkcióval

A felhasználói bevitel egy másik terület, ahol gyakran előfordulnak kivételek. A felhasználók váratlan formátumban adhatnak meg adatokat, vagy olyan bevitelt adhatnak meg, amely kívül esik az elfogadható tartományon.

A következő példa bemutatja, hogyan kell kezelni a felhasználói bevitelt egy try-except blokkal:

try: age = int(input("Enter your age: ")) except ValueError: print("That's not a valid age. Please enter a number.")

Ebben a kódban arra kérjük a felhasználót, hogy adja meg életkorát. Ha olyasmit adnak meg, amit nem lehet egész számmá alakítani (például egy szót vagy betűt), akkor kivétel történik, de a program összeomlása helyett a következőt írja ki: „Ez nem érvényes kor. Kérjük, adjon meg egy számot.'

Python próba, kivéve: lépésről lépésre példák

3. Nem létező szótárkulcsok elérése

A Pythonban a szótár egy változtatható, rendezetlen , ahol minden kulcsnak egyedinek kell lennie.

Amikor olyan kulcshoz próbál hozzáférni, amely nem létezik a szótárban, a Python KeyError-t vet fel. Ezt a kivételt az alábbi példában látható módon a try and kivételével kezelheti:

dictionary = {"key1": "value1", "key2": "value2"} try: print(dictionary["key3"]) except KeyError: print("The key does not exist in the dictionary.")

Ebben a kódban a „key3” értékét próbálja kinyomtatni egy szótárból. Ha a „kulcs3” nem létezik a szótárban, akkor kivétel történik, de ahelyett, hogy a program hibával leállna, a „A kulcs nem létezik a szótárban” szöveget írja ki.

Python próba, kivéve: lépésről lépésre példák

4. Karakterlánc átalakítása egész számmá

Előfordulhat, hogy a-t egész számmá szeretné konvertálni. De ha a karakterlánc nem érvényes egész számot jelent, a Python ValueError-t fog felállítani.

Az eset kezelésére használhatja a try and kivételt:

try: num = int("hello") except ValueError: print("That string can't be converted to integer.")

Ebben az esetben a „hello” nem konvertálható egész számmá, ezért a Python ValueError-t vet fel, és kiírja a „Ez a karakterlánc nem konvertálható egész számmá.”

Python próba, kivéve: lépésről lépésre példák

5. Modul importálása

Amikor , lehetséges, hogy a modul nem létezik, vagy nincs telepítve. A Python ilyen esetekben importhibát vet fel.

Az eset kezeléséhez a következő kódot használhatja:

try: import some_module except ImportError: print("The module 'some_module' is not installed.")

A fenti példában, ha a „some_module” nincs telepítve, vagy nem létezik, a Python egy ImportError üzenetet vet fel, és kiírja a „A „some_module” modul nincs telepítve.

Python próba, kivéve: lépésről lépésre példák

Ha többet szeretne megtudni a kód írásáról Pythonban és az elvárások kezeléséről, tekintse meg a következő videót:

Ezután a kivételek kezelésének néhány bevált módszerét tekintjük át. Merüljünk el benne!

A kivételkezelés legjobb gyakorlatai

Ebben a részben felsoroltunk néhány bevált módszert a kivételek Try Except blokkal való kezeléséhez. Néhány bevált gyakorlat a kivételek kezelésére:

1. Legyen konkrét a kivételekkel

A kód írásakor kulcsfontosságú, hogy a kivételeket a lehető legpontosabban rögzítse. Ez azt jelenti, hogy ahelyett, hogy csak egy általános kivételnevet ragadna meg, a várt kivétel tényleges típusát kell megfognia.

Így pontosan tudni fogja, hogy milyen hiba történt, és megfelelően tudja kezelni.

2. Ne nyomd el a kivételeket

Amikor kivételekkel foglalkozik, kísértést érezhet, hogy csak egy kivételkezelővel fogja meg, és ne tegyen vele semmit. Ez általában rossz ötlet.

Ha hiba történik, az általában azért van, mert valamit javítani kell. Ha letiltja a kivételosztályt, a hiba észrevétlen marad, és később problémákat okozhat.

3. Használja a Végül a Cleanup Code-hoz

Néha van néhány kód, amelyet le kell futtatnia, függetlenül attól, hogy hiba történt-e vagy sem. Ez lehet például egy fájl bezárása vagy egyes erőforrások felszabadítása.

Ezekben az esetekben használhat végül blokkot. A Végül blokkban lévő kód mindentől függetlenül lefut, így remek hely a tisztítókód elhelyezéséhez.

try: # Some code here finally: # This code will run no matter what

4. Szükség esetén emelje ki a kivételeket

Előfordulhatnak olyan helyzetek, amikor tudatnia kell a kód felhasználójával, hogy valami hiba történt.

Ezekben az esetekben kivételt tehet. Ez azonnal leállítja a kód végrehajtását, és értesíti a felhasználót, hogy hiba történt.

if not valid_input: raise ValueError("Your input was not valid!")

Ezeknek a bevált módszereknek a megértése és megvalósítása robusztusabbá, könnyebben hibakereshetővé teszi a kódot, és megelőzi a váratlan összeomlásokat.

Végső gondolatok

Összefoglalva, a try and kivéve használatának ismerete a Pythonban nagyon sokat segít, ha kódot ír, és kivételekkel találkozik benne.

Lehetővé teszik, hogy a program zökkenőmentesen kezelje a hibákat, ahelyett, hogy hirtelen leállna. Ez egy módja annak, hogy kódja képes legyen kezelni a meglepetéseket, és továbbra is működjön.

Ráadásul a try and kivétel használatakor ez azt mutatja, hogy tényleg azon gondolkozol, hogy mi lehet a baj, és felkészülsz rá. Tehát szánjon időt ezen eszközök megtanulására – rendkívül hasznosak, ha Pythonban ír kódot!

Leave a Comment

E-mail melléklet mentése SharePointba a Power Automate segítségével

E-mail melléklet mentése SharePointba a Power Automate segítségével

Ebből a blogból megtudhatja, hogyan mentheti automatikusan az e-mail mellékleteket a SharePointba, majd törölheti az e-maileket a Power Automate segítségével.

A Microsoft LuckyTemplates irányítópult 18 legjobb példája 2023

A Microsoft LuckyTemplates irányítópult 18 legjobb példája 2023

A Microsoft LuckyTemplates irányítópult 18 legjobb példája 2023

A Power Automate folyamatok létrehozása a semmiből

A Power Automate folyamatok létrehozása a semmiből

Ismerje meg, hogyan hozhat létre <strong>Power Automate</strong> folyamatokat a semmiből. Sablon használata helyett mi magunk hozzuk létre a kiváltó okokat és a műveleteket.

4 módszer a Pi használatára a Pythonban példákkal

4 módszer a Pi használatára a Pythonban példákkal

4 módszer a Pi használatára a Pythonban példákkal

Profit and Loss (P&L) kimutatások létrehozása a LuckyTemplates alkalmazásban

Profit and Loss (P&L) kimutatások létrehozása a LuckyTemplates alkalmazásban

Ebben az útmutatóban bemutatom, hogyan lehet Pénzügyi információk mátrixát létrehozni a Profit és veszteség (P&L) kimutatással a LuckyTemplates alkalmazásban.

Hogyan lehet dinamikusan egyesíteni az oszlopokat egy Power Query-táblázatban

Hogyan lehet dinamikusan egyesíteni az oszlopokat egy Power Query-táblázatban

Fedezze fel, hogyan lehet dinamikusan egyesíteni oszlopokat a Power Query Table.CombineColumns függvény segítségével.

SharePoint-fájlok hozzáadása a számítógéphez

SharePoint-fájlok hozzáadása a számítógéphez

Ismerje meg, hogyan adhatjuk hozzá és szinkronizálhatjuk SharePoint-fájljainkat az asztalon és a OneDrive-on.

Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Tudja meg, miért fontos egy dedikált dátumtáblázat a LuckyTemplatesben, és ismerje meg ennek leggyorsabb és leghatékonyabb módját.

LuckyTemplates mobil jelentéskészítési tippek és technikák

LuckyTemplates mobil jelentéskészítési tippek és technikák

Ez a rövid oktatóanyag kiemeli a LuckyTemplates mobil jelentési funkcióját. Megmutatom, hogyan készíthet hatékony jelentéseket mobileszközökön.

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Ebben a LuckyTemplates bemutatóban olyan jelentéseket tekintünk át, amelyek professzionális szolgáltatáselemzést mutatnak be egy olyan cégtől, amely több szerződéssel és ügyfél-elkötelezettséggel rendelkezik.