Hi 大家好,
今天要開始介紹Python中的錯誤和例外狀況篇之續集,那我們開始吧!
在上一篇寫到例外處理使用到 try
和 except
,除此之外還有幾個常見的方式
try
、except
和 else
else
下的內容
try
區塊中執行可能引發例外的代碼。except
區塊用來捕獲特定的例外並進行處理。else
區塊僅在沒有發生任何例外時執行。def divide_numbers(a, b):
try:
result = a / b
except ZeroDivisionError:
print("不能除以零")
else:
print(f"結果是 {result}")
divide_numbers(10, 2) # 沒有錯誤的輸出結果:結果是 5.0
divide_numbers(10, 0) # 發生錯誤的輸出結果:不能除以零
PS D:\Project\practice> python hi.py
結果是 5.0
不能除以零
PS D:\Project\practice>
try
和 finally
try:
result = 10 / 2
except ZeroDivisionError:
print("不可除0")
else:
print("沒例外就會執行")
finally:
print("不管如何最後都會執行")
print("有無例外都會繼續執行後面流程")
PS D:\Project\practice> python hi.py
沒例外就會執行
不管如何最後都會執行
有無例外都會繼續執行後面流程
PS D:\Project\practice>
多個 except
區塊來針對不同的例外進行不同的訊息顯示和處理def handle_input(value):
try:
number = int(value)
result = 10 / number
except ValueError:
print("輸入值必須是數字")
except ZeroDivisionError:
print("不能除以零")
else:
print(f"結果是 {result}")
handle_input("abc")
handle_input("0")
handle_input("2")
PS D:\Project\practice> python hi.py
輸入值必須是數字
不能除以零
結果是 5.0
PS D:\Project\practice>
Exception
來實現except
區塊可以捕獲所有類型的例外,可以把Exception
設定一個別名e
來使用def safe_divide(a, b):
try:
result = a / b
except Exception as e:
print(f"發生錯誤:{e}")
else:
print(f"結果是 {result}")
safe_divide(10, 0)
safe_divide(10, 'a')
PS D:\Project\practice> python hi.py
發生錯誤:division by zero
發生錯誤:unsupported operand type(s) for /: 'int' and 'str'
PS D:\Project\practice>
那今天就介紹到這裡,我們明天見~