目次
- 1 1. Ano ang mga exception sa Python
- 2 2. Pangunahing paghawak ng mga exception gamit ang try at except
- 3 3. Paano pangasiwaan ang maramihang mga exception nang sabay-sabay
- 4 4. Maglabas ng Exception (raise)
- 5 5. Pagkuha ng Impormasyon ng Exception
- 6 6. Mga pinakamahusay na kasanayan sa paghawak ng mga exception
- 7 7. Buod
1. Ano ang mga exception sa Python
Ang mga exception sa Python ay isang uri ng error na nangyayari habang tumatakbo ang programa. Karaniwan, sinusunod ng programa ang pagkakasunod-sunod ng code mula itaas pababa, ngunit kapag may error na naganap sa isang tiyak na sitwasyon, ititigil ang pagpapatupad ng bahaging iyon ng code at magtataas ng exception. Halimbawa, kapag sinubukang mag-divide sa zero, lalabas angZeroDivisionError, at kapag sinubukang i-access ang index ng listahan na hindi umiiral, lalabas ang IndexError.1.1 Mga karaniwang uri ng exception
Maraming built-in na exception ang Python. Narito ang ilang karaniwang halimbawa.ValueError: Kapag ang isang function ay nakatanggap ng hindi angkop na halagaTypeError: Kapag ang isang operasyon o function ay ginawa sa maling uri ng dataIndexError: Kapag nag-access ng index na labas sa saklaw ng isang sequence (tulad ng listahan)ZeroDivisionError: Kapag sinubukang mag-divide sa zero
2. Pangunahing paghawak ng mga exception gamit ang try at except
Sa Python, gumagamit ng try at except para sa paghawak ng mga exception. Sa ganitong paraan, napipigilan ang programa na huminto dahil sa error, at kahit na may error, maaaring magpatuloy ang ibang bahagi ng programa.2.1 Pangunahing syntax
Ilalagay ang code na maaaring magdulot ng error sa loob ngtry block, at isusulat ang code na ipapatupad kapag naganap ang error sa loob ng except block.try:
result = 10 / 0
except ZeroDivisionError:
print("Hindi maaaring hatiin sa zero.")Sa halimbawang ito, kapag naganap ang ZeroDivisionError, isinasagawa ang except block at inilalabas ang “Hindi maaaring hatiin sa zero.”2.2 Maramihang except block
Kung nais magproseso ng maraming magkaibang exception, maaaring gumamit ng maraming except block. Halimbawa, maaaring magbigay ng magkaibang paghawak para sa mga error tulad ng NameError at TypeError.try:
print(a)
except NameError:
print('Hindi pa naideklara ang variable a.')
except TypeError:
print('May maling uri na ginamit.')Sa code na ito, dahil hindi naideklara ang a, nagaganap ang NameError at ipinapakita ang kaukulang mensahe.3. Paano pangasiwaan ang maramihang mga exception nang sabay-sabay
Kung may posibilidad na maganap ang maraming iba’t ibang uri ng mga exception sa isang programa, maaari mong pangasiwaan ang mga ito nang sabay-sabay sa isangexcept na bloke.3.1 Pangasiwaan ang maramihang mga exception sa isang except na bloke
Maaari mong tukuyin ang maramihang mga exception bilang isang tuple sa except na bloke, tulad ng sumusunod.try:
num = int(input("Mangyaring maglagay ng numero: "))
result = 10 / num
except (ValueError, ZeroDivisionError):
print("May hindi wastong input o sinubukang hatiin sa zero.")Sa halimbawang ito, kapag naglagay ang gumagamit ng hindi wastong halaga o naglagay ng zero at sinubukang mag-divide, pinoproseso ang mga ito nang sabay-sabay at nagpi-print ng “May hindi wastong input o sinubukang hatiin sa zero.”.3.2 Paggamit ng parent class upang pangasiwaan ang mga exception nang sabay-sabay
Exception class ay ang parent class ng halos lahat ng built-in na mga exception. Maaari mong gamitin ang class na ito kung nais mong mahuli ang lahat ng mga exception. Gayunpaman, dahil napakalawak ng pamamaraang ito, kailangan mag-ingat sa paggamit.try:
# Code na maaaring magdulot ng error
except Exception as e:
print("Nagkaroon ng error:", e)Sa pamamaraang ito, anuman ang exception na mangyari ay mahuhuli at magpapakita ng mensahe. Gayunpaman, inirerekomenda na idisenyo ito upang magproseso ng mga tiyak na exception hangga’t maaari.
4. Maglabas ng Exception (raise)
Sa panahon ng pagpapatakbo ng programa, maaari kang manu-manong maglabas ng exception kapag hindi natutugunan ang isang tiyak na kondisyon. Upang gawin ito, gamitin ang raise na pahayag.4.1 Paggamit ng raise na pahayag
Sa sumusunod na halimbawa, magbubuga ng ValueError kapag naipasa ang negatibong halaga.def check_value(value):
if value < 0:
raise ValueError("Hindi pinapayagan ang negatibong halaga.")
return value
try:
result = check_value(-1)
except ValueError as e:
print(e)Sa halimbawang ito, dahil ang negatibong halaga na -1 ay ipinasa sa function na check_value, magaganap ang ValueError at ipapakita ang mensaheng “Hindi pinapayagan ang negatibong halaga.”4.2 Pag-apply ng raise
Ang raise na pahayag ay maaari ring gamitin kapag nagde-define ng custom na klase ng exception. Sa pamamagitan ng paglikha ng sarili mong exception at pagpapalabas nito sa ilalim ng tiyak na kondisyon, mas magiging flexible ang error handling ng programa.5. Pagkuha ng Impormasyon ng Exception
Kapag naganap ang isang exception, ang pagkuha ng detalyadong impormasyon nito ay makakatulong upang mapadali ang pagsusuri ng problema at pag-debug. Saexcept block, gamit ang as clause, maaari mong makuha ang exception object.5.1 Paggamit ng as clause
Sa sumusunod na halimbawa, kinukuha ang exception object bilang e at ipinapakita ang mensahe nito.try:
result = 10 / 0
except ZeroDivisionError as e:
print("Nagkaroon ng error:", e)Sa code na ito, kapag naganap ang ZeroDivisionError, magpapakita ng mensaheng “Nagkaroon ng error: division by zero”. Ang exception object ay naglalaman ng mga detalye tulad ng uri ng exception at mensahe ng error.5.2 Paggamit ng Exception Object
Ang exception object ay maaaring magamit hindi lamang para ipakita ang mensahe ng error, kundi pati na rin para magtala sa log at magsagawa ng karagdagang pagproseso para sa partikular na mga error. Halimbawa, maaari mong isulat ang mensahe ng error sa log file upang magamit ito sa pag-debug mamaya.6. Mga pinakamahusay na kasanayan sa paghawak ng mga exception
Ang epektibong paghawak ng mga exception ay nagpapabuti sa katatagan at pagiging maaasahan ng programa. Narito ang ilang pinakamahusay na kasanayan sa paghawak ng mga exception sa Python.6.1 Paghuli ng tiyak na mga exception
Hangga’t maaari, subukang hulihin ang mga tiyak na exception. Sa halip na hulihin ang malawak naException, ang paghuli ng mga tiyak na inaasahang exception tulad ng ValueError o TypeError ay magpapalinaw at magbibigay ng mas intensyonal na paghawak ng error.6.2 Itala ang mga exception sa log
Sa pamamagitan ng pagtatala ng mga mensahe ng error sa log, mas madali mong matutukoy ang pinagmulan ng problema sa kalaunan. Lalo na sa malalaking programa o sistema, mahalaga ang pagrekord ng impormasyon kapag naganap ang isang exception.6.3 Maayos na pag-degrade
Mahalaga na magdisenyo ng maayos na pag-degrade (graceful degradation) upang hindi ganap na mag-crash ang programa kapag may nangyaring exception. Halimbawa, maaaring magpakita ng malinaw na mensahe ng error sa gumagamit o magsagawa ng alternatibong aksyon upang mapabuti ang pagiging maaasahan ng programa.6.4 Iwasan ang labis na paghawak ng mga exception
Iwasan ang pagkuha ng lahat ng exception at basta-basta itong balewalain. Nakakapagpahirap ito sa pag-debug at maaaring magdulot ng hindi inaasahang pag-uugali ng programa. Kapag nahuli ang isang exception, siguraduhing magtala ng mensahe ng error o magsagawa ng angkop na pagproseso.6.5 Paggamit ng finally block
Ang finally block ay ginagamit upang isulat ang code na palaging isasagawa, anuman ang pagkakaroon ng exception. Halimbawa, dito inilalagay ang mga gawain tulad ng pagsasara ng file o pag-release ng mga resources na kailangang gawin palagi.try:
file = open("example.txt", "r")
# Proseso ng pagbasa ng file
except FileNotFoundError:
print("Hindi mahanap ang file.")
finally:
file.close()Sa halimbawang ito, kahit na nabigo ang pagbukas ng file, tinitiyak ng finally block na maisasara ang file.7. Buod
Ang exception handling ng Python ay mahalagang teknolohiya na nagpapataas ng pagiging maaasahan ng programa at nagbibigay-daan sa tamang pagharap kapag may error.try at except gamit para mahuli ang mga error, at raise para lumikha ng custom na exception, mapapabuti ang flexibility at maintainability ng code.- Nauunawaan kung ano ang exception at natutunan ang mga karaniwang uri nito.
- Natutuhan kung paano magsagawa ng pangunahing exception handling gamit ang
tryatexcept. - Nakita kung paano pagsamahin at pangasiwaan ang maraming exception sa isang
exceptblock. - Natuklasan kung paano mag-raise ng exception gamit ang
raiseat ang mga aplikasyon nito. - Natutuhan kung paano kunin ang exception object para makuha ang detalyadong impormasyon ng error.
- Sa huli, pinag-isipan ang mga best practice sa exception handling at tinalakay ang disenyo ng epektibong error handling.




