1. 程式人生 > 程式設計 >Python 異常的捕獲、異常的傳遞與主動丟擲異常操作示例

Python 異常的捕獲、異常的傳遞與主動丟擲異常操作示例

本文例項講述了Python 異常的捕獲、異常的傳遞與主動丟擲異常操作。分享給大家供大家參考,具體如下:

異常的捕獲

demo.py(異常的捕獲):

try:
  # 提示使用者輸入一個整數
  num = int(input("輸入一個整數:"))
  # 使用 8 除以使用者輸入的整數並且輸出
  result = 8 / num
  print(result)
except ValueError:
  print("請輸入正確的整數")
except Exception as result:
  print("未知錯誤 %s" % result)
else:
  print("未發生異常時,執行的程式碼")
finally:
  print("無論是否出現異常都會執行的程式碼")

執行結果:

輸入一個整數:0
未知錯誤 division by zero
無論是否出現異常都會執行的程式碼

異常的傳遞

demo.py(異常的傳遞):

def demo1():
  return int(input("輸入整數:"))
def demo2():
  return demo1()
# 利用異常的傳遞性,在主程式捕獲異常
try:
  print(demo2())
except Exception as result:
  print("未知錯誤 %s" % result)
# demo1()發生異常 --> 傳遞給demo2() --> 傳遞給主程式 print()函式 --> 主程式如果未捕獲,程式終止

執行結果:

輸入整數:s
未知錯誤 invalid literal for int() with base 10: 's'

主動丟擲異常

demo.py(raise主動丟擲異常):

def input_password():
  # 提示使用者輸入密碼
  pwd = input("請輸入密碼:")
  # 如果密碼長度>=8,返回使用者輸入的密碼
  if len(pwd) >= 8:
    return pwd
  # 如果 < 8 主動丟擲異常
  print("主動丟擲異常")
  # 1> 建立異常物件
  ex = Exception("密碼長度不夠")
  # 2> raise 主動丟擲異常
  raise ex
# 提示使用者輸入密碼
try:
  print(input_password())
except Exception as result:
  print(result)

執行結果:

請輸入密碼:123
主動丟擲異常
密碼長度不夠

更多Python相關內容感興趣的讀者可檢視本站專題:《Python入門與進階經典教程》、《Python字串操作技巧彙總》、《Python列表(list)操作技巧總結》、《Python編碼操作技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。