MC, 2025
Ilustracja do artykułu: Python Exception Handling: Kial kaj Kiel Uzi?

Python Exception Handling: Kial kaj Kiel Uzi?

En la mondo de programado, eraroj estas neeviteblaj, sed tio ne signifas, ke ili devas esti katastrofo. Ĉiu programisto alfrontas erarojn dum la evoluo de aplikoj, kaj scio pri kiel administri ilin povas fari la diferencon inter katastrofo kaj sukceso. En Python, ekzistas tre potenca mekanismo por trakti tiujn erarojn nomata "exception handling" (administrado de eraroj). En ĉi tiu artikolo, ni esploros, kion estas "python exception handling" kaj kiel uzi ĝin efike en via kodo.

Kio estas Exception Handling en Python?

La "exception handling" estas tekniko uzata por kapti erarojn aŭ "ekzemplerojn" kiuj okazas dum la ekzekuto de programo. En Python, eraroj estas reprezentataj per objektoj nomataj "exceptions", kiuj estas generitaj kiam io ne funkcias laŭplane (ekzemplo: dividado de nombro per 0, malbona eniro de uzanto, ktp.). Se vi ne traktu tiujn erarojn, ili povas haltigi la programon, kio ofte estas nedezirebla.

La ĉefa celo de exception handling estas ebligi al la programo daŭrigi funkciadon eĉ kiam io malĝuste okazas. En Python, tio estas farata per tri ĉefaj blokoj: try, except, kaj finally. Ni montros al vi, kiel ĉiu el tiuj blokoj funkcias.

La Try-Except Bloko

La plej baza formo de exception handling en Python estas la uzado de la try kaj except blokoj. En ĉi tiu strukturo, vi metas la kodon, kiu povus kaŭzi eraron, en la try blokon, kaj se eraro okazas, la kodo en la except blokon estos ekzekutita por trakti ĝin.

Jen ekzemplo de bazaj try-except blokoj:

try:
    nombro = int(input("Enigu nombron: "))
    rezulto = 10 / nombro
except ZeroDivisionError:
    print("Eraro: Vi ne povas dividi per 0!")
except ValueError:
    print("Eraro: Vi ne enmetis validan nombron!")
else:
    print("La rezulto estas:", rezulto)

En ĉi tiu kazo, se la uzanto enigas malĝustan valoron, kiel literon aŭ 0 (por divido), la programo ne ĉesos. Anstataŭe, ĝi montros mesaĝon pri la eraro sen haltigi la tutan programon.

La Finally Bloko

La finally bloko estas uzata kiam vi volas certigi, ke certa kodo estos ĉiam ekzekutita, sendepende de ĉu okazas eraro aŭ ne. Ĉi tio estas utile por liberigi resursojn, kiel fermado de dosieroj aŭ konektoj, kiujn vi volas ĉiam liberigi post uzo.

try:
    dosiero = open("miaj_datumoj.txt", "r")
    enhavo = dosiero.read()
except FileNotFoundError:
    print("La dosiero ne troviĝis!")
finally:
    if 'dosiero' in locals():
        dosiero.close()
    print("Dosiero fermita.")

En ĉi tiu ekzemplo, eĉ se la dosiero ne ekzistas, la kodo en la finally bloko estos ekzekutita por ĉiam certigi, ke la dosiero estas fermita, se ĝi estis malfermita.

Specifaj Eraroj

En Python, vi povas kapti specifajn erarojn per nombro de malsamaj tipoj de except blokoj. Ekzemple, se vi volas kapti ĉiun eraron rilatan al nombroj, vi povas uzi except ZeroDivisionErrorexcept ValueError. Tamen, se vi volas kapti ajnan formon de eraro, vi povas uzi la ĝeneralan eraron:

try:
    x = 10 / 0
except Exception as e:
    print(f"Okazis eraro: {e}")

Ĉi tio montros la tipon de eraro, kiu okazis, kaj vi povas trakti ĝin per taŭga mezuro.

Kaptado de Multegaj Eraroj

Se vi volas kapti multajn erarojn en unu bloko, vi povas uzi la sekvan sintakson. Ĉi tio permesas al vi grupe kapti malsamajn tipojn de eraroj kaj trakti ilin kun unu kodo:

try:
    numero = int(input("Enigu nombron: "))
    rezulto = 10 / numero
except (ZeroDivisionError, ValueError) as eraro:
    print(f"Eraro okazis: {eraro}")
else:
    print(f"La rezulto estas: {rezulto}")

Ĉi tio estas tre utila, kiam vi volas trakti simile difinitajn erarojn kun unika reagado.

Uzi la Raise Komandon

En iuj kazoj, vi volas kapti eraron, sed ankaŭ provoki novan eraron, ofte kun specifaj mesaĝoj. En Python, vi povas fari tion per la raise komando. Ĉi tio permesas al vi generi erarojn manlibre por trakti specialajn situaciojn.

def dividi(a, b):
    if b == 0:
        raise ValueError("Vi ne povas dividi per 0!")
    return a / b

try:
    rezulto = dividi(10, 0)
except ValueError as eraro:
    print(f"Eraro: {eraro}")

En ĉi tiu ekzemplo, se la dividanto estas 0, la raise komando generos eraron, kiun ni povas kapti kaj trakti.

Eraraj Mezuroj en Python: Aliaj Kazonoj

La funkcio de exception handling en Python ne limiĝas nur al trakomprenaj eraroj. Vi povas uzi ĝin por krei sekurajn aplikojn, protekti kontraŭ malbona eniro de uzanto, aŭ eĉ modifi la fluo de via programo bazita sur okazintaĵoj.

Resumado

La administrado de eraroj per Python estas unu el la plej gravaj aspektoj, kiujn ĉiu programisto devus kompreni por skribi fidindajn kaj sekurajn programojn. Kun la try, except, kaj finally mekanismoj, vi povas kapti erarojn kaj fari taŭgajn reago por eviti ke via kodo malsukcesu. Ni esperas, ke ĉi tiu artikolo donis al vi klaran komprenon pri "python exception handling" kaj helpos vin produkti pli bonajn aplikojn. Ĉu vi jam uzis ĉi tiun teknikon en viaj projektoj? Provu ĝin kaj vidu kiom efika ĝi estas!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: