Pag-angkop ng Error sa Python
Sa artikulong ito, ipapaliwanag namin ang pag-angkop ng error sa Python.
YouTube Video
Pag-angkop ng Error sa Python
Ang pag-angkop ng error sa Python ay pangunahing ginagawa gamit ang mga keyword na try
, except
, else
, at finally
. Sa paggamit ng mga ito, magagawa mong tumugon nang angkop kapag nagkaroon ng error sa iyong programa. Sa ibaba, ipapaliwanag namin kung paano gamitin ang bawat isa sa kanila.
try
Block
Sa loob ng try
block, isusulat mo ang code na nais mong isakatuparan. Kung may mangyaring error sa block na ito, agad na lilipat ang pagpapatakbo ng programa sa except
block.
1try:
2 # Code that may raise an error (division by zero, for example)
3 #number = int(input("Enter a number: "))
4 number = int("abc")
5 result = 10 / number
6 print("Result:", result)
7except ValueError as e:
8 # Handle invalid input (e.g. non-numeric input)
9 print("Invalid input. Please enter a whole number.")
10 print(f"Value error: {e}")
11except ZeroDivisionError as e:
12 # Handle division by zero error
13 print("Cannot divide by zero!")
14 print(f"Zero division error: {e}")
- Ang code na ito ay halimbawa ng pagtukoy ng mga error sa isang
try
block at ang tamang paghawak nito sa pamamagitan ng pag-catch ng alinman saValueError
oZeroDivisionError
.
except
Block
Sa except
block, isinusulat mo ang code na isasagawa kapag naganap ang isang partikular na pagbubukod (error). Maaari mo ring mahuli ang mga partikular na pagbubukod depende sa uri ng pagbubukod na naganap.
1try:
2 #number = int(input("Enter a number: "))
3 number = 0
4 result = 10 / number
5 print("Result:", result)
6except ZeroDivisionError as e:
7 print("Cannot divide by zero!")
8 print(f"Zero division error: {e}")
9except ValueError as e:
10 print("Input was not a valid integer.")
11 print(f"Value error: {e}")
- Ang code na ito ay halimbawa ng paggawa ng iba’t ibang paraan ng paghawak para sa bawat uri ng exception sa loob ng
except
block kapag may error na nangyari satry
block.
Pangangasiwa ng maraming pagbubukod nang sabay-sabay
Tukuyin ang tuple kapag maraming klase ng pagbubukod ang maaaring magbahagi ng parehong lohikang pag-angkop.
1try:
2 my_list = [1, 2]
3 result = my_list[3] + 10 / 0
4except (IndexError, ZeroDivisionError) as e:
5 print(f"Exception occurred: {e}")
- Ang code na ito ay halimbawa ng pag-catch ng parehong
IndexError
atZeroDivisionError
nang sabay at paghawak ng mga exceptions sa parehong paraan.
Panghuhuli ng pagbubukod nang walang kondisyon
Tanggalin ang argument para sa except
kung nais mong pangasiwaan ang lahat ng uri ng pagbubukod sa isang block.
1try:
2 # This code might cause some exception
3 result = "10" + 5 # TypeError
4except Exception as e:
5 print("Unexpected error")
- Gayunpaman, mas nakakatulong ang paghawak ng mga partikular na exceptions sa halip na basta i-catch lahat ng exceptions nang walang kondisyon, para sa paghahanap ng bugs at debugging. Kapag maaari, ang tahasang paghawak lamang ng mga inaasahang exceptions gaya ng
ValueError
oTypeError
ay magpapalakas sa katatagan ng iyong code.
else
block
Ang else
block ay isinasagawa lamang kung walang naganap na error sa loob ng try
block.
1try:
2 #number = int(input("Enter a number: "))
3 number = 5
4 result = 10 / number
5except ZeroDivisionError as e:
6 print("Cannot divide by zero!")
7 print(f"Zero division error: {e}")
8except ValueError as e:
9 print("Input was not a valid integer.")
10 print(f"Value error: {e}")
11else:
12 # This block will execute only if no exceptions were raised
13 print("Result:", result)
- Ang code na ito ay halimbawa kung saan ang
else
block ay maipapatupad lamang kapag walang error na nangyari satry
block.
finally
block
Ang finally
block ay ginagamit upang sumulat ng code na laging isasakatuparan sa katapusan, kahit nagkaroon man ng error sa try
block. Ito ay kapaki-pakinabang sa pagpapakawala ng mga resources o pagsasagawa ng mga gawaing paglilinis.
1try:
2 #number = int(input("Enter a number: "))
3 number = int("abc")
4 result = 10 / number
5except ZeroDivisionError as e:
6 print("Cannot divide by zero!")
7 print(f"Zero division error: {e}")
8except ValueError as e:
9 print("Input was not a valid integer.")
10 print(f"Value error: {e}")
11else:
12 # This block will execute only if no exceptions were raised
13 print("Result:", result)
14finally:
15 # This block will always execute, regardless of whether an exception was raised
16 print("Execution completed.")
- Ang code na ito ay halimbawa na nagpapakita na ang
finally
block ay isinasagawa kahit na may mangyaring exception o wala.
Ang salitang susi na raise
Posible ring magtaas ng isang exception gamit ang salitang susi na raise
kapag ang ilang kundisyon sa umiiral na code ay hindi natugunan.
1def divide(a, b):
2 if b == 0:
3 raise ValueError("Cannot divide by zero.")
4 return a / b
5
6try:
7 result = divide(10, 0)
8except ValueError as e:
9 print(f"Error: {e}")
- Ang code na ito ay halimbawa ng tahasang pagpapa-raise ng isang exception gamit ang
raise
keyword kapag hindi natugunan ang isang kondisyon.
Konklusyon
Sa pamamagitan ng pag-angkop ng mga error sa ganitong paraan, maaari mong maiwasan ang pagbagsak ng programa, magpakita ng angkop na mensahe sa gumagamit, at magpatuloy sa susunod na pagproseso ng programa.
Maaari mong sundan ang artikulo sa itaas gamit ang Visual Studio Code sa aming YouTube channel. Paki-check din ang aming YouTube channel.