目次
- 1 1. Introduksyon: Ang kahalagahan ng exception handling sa Python
- 2 2. Paghawak ng Exception sa Python: Pangunahing Sintaks at Daloy
- 3 3. Mga Karaniwang Exception at ang Kanilang Pamamaraan ng Paghawak
- 4 4. Paraan ng paghawak ng maramihang mga exception
- 5 5. Mga user-defined na exception at paggamit ng raise na pahayag
- 6 6. Buod at Mga Pinakamahusay na Kasanayan
1. Introduksyon: Ang kahalagahan ng exception handling sa Python
Sa programming, hindi maiiwasan ang mga exception at error. Gayunpaman, sa pamamagitan ng tamang paghawak ng mga exception, maaaring maiwasan ang hindi inaasahang pag-hinto ng programa at makapagbigay ng angkop na mensahe ng error sa mga gumagamit. Sa Python, mayroong malakas na mekanismo para sa paghawak ng mga ganitong exception. Sa paggamit ng exception handling, tataas ang pagiging maaasahan ng programa at magiging mas maayos ang pag-andar nito. Halimbawa, kung ang isang gumagamit ay magsasagawa ng paghahati sa zero o susubukang magbukas ng file na hindi umiiral, kung walang exception handling, agad na titigil ang programa. Ngunit sa pamamagitan ng tamang paghawak ng mga exception, maaaring ipagpatuloy ang programa o magpakita ng malinaw na mensahe ng error sa gumagamit.2. Paghawak ng Exception sa Python: Pangunahing Sintaks at Daloy
Sa Python, pangunahing tatlong keyword ang ginagamit para sa paghawak ng exception:try
, except
, at finally
.2.1 try
para sa pagtuklas ng error
try
statement ay ginagamit upang balutin ang mga prosesong maaaring magdulot ng error. Halimbawa, mga operasyon sa network, pagproseso ng file, input ng user, at iba pang mga bahagi na maaaring mag‑error sa runtime ay nilalagay sa loob ng try
block.try:
result = 10 / 0
except:
print("Naganap ang error")
Sa halimbawa sa itaas, ang hindi wastong operasyon na 10 / 0
ay nagdudulot ng exception, at ang except
block ay isinasagawa.2.2 except
para sa pagproseso ng error
except
statement ay nagha‑catch ng nangyaring exception at nagpoproseso nito. Kapag nag‑error, tinitiyak nito na hindi mag‑behave ang programa nang hindi inaasahan, sa pamamagitan ng tamang pag‑handle gamit ang except
. Maaari ring mag‑define ng iba’t ibang pag‑proseso depende sa uri ng exception.try:
print(a)
except NameError:
print("Hindi pa naideklara ang variable")
except ZeroDivisionError:
print("Hindi maaaring hatiin ng 0")
Sa ganitong paraan, maaaring mag‑set ng indibidwal na pag‑proseso para sa maraming exception.2.3 finally
para sa tiyak na pag‑release ng resources
finally
statement ay isang block na palaging isinasagawa, kahit na may exception. Kapag gumagamit ng file operations o network resources, ginagamit ito upang siguraduhing laging nare‑release ang resources kahit na may exception.try:
file = open("test.txt", "r")
finally:
file.close()
Sa ganitong mga sitwasyon, tulad ng file operations o database connections, napaka‑kapaki‑pakinabang ng finally
para matiyak ang maayos na pamamahala ng resources.
3. Mga Karaniwang Exception at ang Kanilang Pamamaraan ng Paghawak
Sa Python, maraming uri ng mga exception ang inihanda. Narito ang ilang pangunahing exception at ang kanilang mga paraan ng paghawak.3.1 NameError
: Kapag gumamit ng hindi pa natukoy na variable
NameError
ay nangyayari kapag tinukoy ang isang variable na hindi pa nadefine. Halimbawa, kapag ang variable ay hindi pa na-initialize.try:
print(a)
except NameError:
print("Hindi naka-define ang variable")
3.2 TypeError
: Kapag sinubukang mag-operate ng magkaibang uri
TypeError
ay nangyayari kapag ang operasyon sa magkaibang data type ay hindi wasto. Halimbawa, kapag sinusubukang i-add ang isang numeric at string.try:
result = '10' + 5
except TypeError:
print("Sinubukang mag-operate ng magkaibang uri")
3.3 ValueError
: Kapag may maling halaga na ipinasa
ValueError
ay nangyayari kapag may invalid na halaga na ipinasa. Halimbawa, kapag sinusubukang i-convert ang string sa integer.try:
number = int("abc")
except ValueError:
print("May maling halaga na ipinasa")
4. Paraan ng paghawak ng maramihang mga exception
Sa Python, posible na mahuli ang maramihang mga exception sa loob ng isangtry
block. Maaari ring maproseso ang maramihang mga exception nang sabay sa isang except
na pahayag.4.1 Pagproseso ng maramihang mga exception nang hiwalay
Kung nais mong iproseso ang bawat exception nang hiwalay, gagamit ka ng maramihangexcept
na mga block.try:
result = 10 / 0
except ZeroDivisionError:
print("Hindi maaaring hatiin sa 0")
except NameError:
print("Hindi pa naideklara ang variable")
4.2 Pagproseso ng maramihang mga exception nang sabay
Kung nais mong gawin ang parehong pagproseso para sa maramihang mga exception, maaari mong sabay-sabay na hulihin ang mga ito gamit ang isangexcept
na pahayag.try:
result = 10 / '10'
except (ZeroDivisionError, TypeError):
print("Nagkaroon ng hindi wastong operasyon")
Sa ganitong paraan, ang paggamit ng pare-parehong pagproseso para sa iba’t ibang mga exception ay nakakatulong upang mapanatiling maikli at malinaw ang code.
5. Mga user-defined na exception at paggamit ng raise
na pahayag
Sa Python, maaari kang mag-define ng sarili mong mga exception para sa mga espesyal na sitwasyon na hindi nasasaklaw ng mga standard na exception. Ang ganitong mga custom na exception ay maaaring sadyang ipagana gamit ang raise
na pahayag.5.1 Pagpapagana ng custom na exception gamit ang raise
na pahayag
Halimbawa, maaari mong i-define ang isang custom na exception na magtataas ng error kapag isang negatibong halaga ang naipasa, tulad ng sumusunod.def check_value(value):
if value < 0:
raise ValueError("Hindi pinapayagan ang negatibong halaga")
return value
try:
check_value(-10)
except ValueError as e:
print(e)
Sa pamamagitan ng paggamit ng raise
na pahayag, maaari mong kontrolin ang paglabas ng error at magpakita ng angkop na mensahe ng error.6. Buod at Mga Pinakamahusay na Kasanayan
Ang paghawak ng mga exception ay isang mahalagang tampok upang gawing mas matibay at ligtas ang mga programang Python. Narito ang mga pinakamahusay na kasanayan sa paghawak ng mga exception.- Mahuli ang partikular na mga exception: Kapag humuhuli ng mga exception, dapat mong tukuyin hangga’t maaari ang tiyak na uri ng error at iwasan ang labis na paggamit ng pangkalahatang
Exception
. Sa ganitong paraan, mas epektibong mapoproseso ang mga hindi inaasahang exception. - Maging masinsinan sa pamamahala ng mga mapagkukunan: Inirerekomenda na ang mga mapagkukunan tulad ng mga file at koneksyon sa network ay laging linisin gamit ang
finally
block. - Gawing malinaw ang mga mensahe ng error: Kapag nagpapakita ng mensahe ng error sa mga gumagamit, siguraduhing malinaw ang sanhi ng problema at magbigay ng gabay kung paano ito aayusin.