1. 程式人生 > 程式設計 >Python執行異常管理解決方案

Python執行異常管理解決方案

1 前言

Python使用被稱為異常的特殊物件來管理程式執行期間發生的錯誤。每當發生讓Python不知所措的錯誤時,它都會建立一個異常物件。

如果你編寫了處理該異常的程式碼,程式將繼續執行;如果你未對異常進行處理,程式將停止,並顯示一個traceback,其中包含有關異常的報告。

異常是使用try-except程式碼塊處理的。try-except程式碼塊讓Python執行指定的操作,同時告訴Python發生異常時怎麼辦。

使用了try-except程式碼塊時,即便出現異常,程式也將繼續執行。

2 運用try-except程式碼塊

我們知道,除數是不能為0的,當程式設計師誤將除數設定為0時,將會出現ZeroDivisionError錯誤。

實現程式碼:

 try:
   print(6/0)
 except ZeroDivisionError:
   print("you can not divide by zero!")

執行結果:

you can not divide by zero!

工作原理:

將可能出現錯誤的程式碼放在try程式碼塊中,如果執行無錯誤,將跳過except程式碼塊;若導致了錯誤,Python將查詢except程式碼塊,並執行其中的程式碼。

這樣一來,當執行出錯時,使用者看到的便是一條友好的錯誤資訊。

若try-except後面還有其他程式碼,那麼程式將接著執行。

3 運用try-except-else程式碼塊

實現程式碼:

print("Please input two numbers,and I will divide them.")
print("Enter 'q' to quit.")

while True:
  first_num = input("\nFirst number: ")
  if first_num == 'q':
    break
  second_num = input("Second number: ")

  try:
    answer = int(first_num) / int(second_num)
  except ZeroDivisionError:
    print("you can not divide by zero!")
  else:
    print(answer)

執行結果:

Python執行異常管理解決方案

工作原理:

一般地,將可能發生異常的程式碼放在try程式碼塊中。

Python嘗試執行try程式碼塊中程式碼,如果發生錯誤,則執行except中程式程式碼;如果執行正常,則執行else程式碼塊中的程式碼。

這樣一來,就有效地避免了可能發生的錯誤帶來的程式崩潰問題,讓程式變得更加健壯。

4 運用pass語句

實現程式碼:

while True:
  first_num = input("\nFirst number: ")
  if first_num == 'q':
    break
  second_num = input("Second number: ")

  try:
    answer = int(first_num) / int(second_num)
  except ZeroDivisionError:
    pass
  else:
    print(answer)

執行結果:

Python執行異常管理解決方案

工作原理:

10 當代碼執行出錯時,Python將會執行except程式碼塊中的pass語句。pass語句既不會出現traceback,也沒有任何輸出。

此外,pass語句還可充當佔位符,用於提醒程式設計師該處還未定義任何語句,後面可能會定義語句。

5 小結

到這裡,我們就瞭解了一些處理異常的方式,我們可以根據不同的需求,決定是否向用戶報告錯誤以及怎樣報告錯誤,有效地避免一些異常帶來的程式崩潰。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。