Pag-angkop ng Error sa Python

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 sa ValueError o ZeroDivisionError.

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 sa try 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 at ZeroDivisionError 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 o TypeError 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 sa try 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.

YouTube Video