Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

Kivételkezelés


Amikor programozol, hibák történnek. Ez egyszerűen az élet része. Talán a felhasználó rossz adatokat adott meg. Lehet, hogy egy hálózati erőforrás nem volt elérhető. Talán a programnak elfogyott a memóriája. Vagy akár a programozó is hibázott!

A Python megoldása a hibákra a kivételek. Lehet, hogy már láttál kivételt korábban.

print(a)

#hiba
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

Hoppá! Elfelejtettünk értéket rendelni az 'a' változóhoz.

De néha nem akarod, hogy a kivételek teljesen leállítsák a programot. Elképzelhető, hogy valami különleges dolgot szeretnél tenni, amikor egy kivételt emelnek. Ezt egy try/except blokkban teheted meg.

Itt van egy triviális példa: Tegyük fel, hogy egy listán iterálsz. 20 számot kell átnézned, de a lista felhasználói bevitelből származik, és lehet, hogy nincs benne 20 szám. Miután elérted a lista végét, a maradék számokat 0-ként szeretnéd értelmezni. Így teheted meg:

def do_stuff_with_number(n):
    print(n)

def catch_this():
    the_list = (1, 2, 3, 4, 5)

    for i in range(20):
        try:
            do_stuff_with_number(the_list[i])
        except IndexError: # Akkor emelkedik, amikor egy nem létező indexet próbálsz elérni a listában
            do_stuff_with_number(0)

catch_this()

Na, nem is volt olyan nehéz! Ezt bármilyen kivétellel megteheted. További részletekért a kivételek kezeléséről nézd meg a Python Docs oldalt.

Exercise

Kezeld az összes kivételt! Gondolj vissza az előző leckékre, hogy visszaadjátok a színész vezetéknevét.

# Setup actor = {"name": "John Cleese", "rank": "awesome"} # Function to modify!!! def get_last_name(): return actor["last_name"] # Test code get_last_name() print("All exceptions caught! Good job!") print("The actor's last name is %s" % get_last_name()) actor = {"name": "John Cleese", "rank": "awesome"} def get_last_name(): return actor["name"].split()[1] get_last_name() print("All exceptions caught! Good job!") print("The actor's last name is %s" % get_last_name()) test_output_contains("Cleese") test_output_contains("All exceptions caught! Good job!") test_output_contains("The actor's last name is Cleese") success_msg("Great work!")

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy