捕捉異常 python入門系列 異常處理

2021-10-25 13:10:03 字數 1280 閱讀 7297

捕捉異常,然後再處理

try: # 可能出現異常的** # 有異常就會丟擲,不會再執行剩下的 try後面的**except ***error as ***: # 出現異常後,而且**捉到的** # except可以寫多個,用來捕捉多個不同的異常else: # 異常未**捉到所執行的**(可以省略)finally: # 不管有沒有異常都會執行的**
異常的合併解決

tyr: 1 / 0 print(val)except (zerodivisionerror, nameerror) as e: print(e)else print("fine like this")# 執行結果:division by zero# 如果不清楚異常的具體名字,可以寫 exception進行替代
上下文管理器

# 在主要**的執行前後分別新增一些操作# 實現了 __enter__(), __exit__()兩個函式的類產生的物件就是上下文管理器class test: def __enter__(self): return self  def __exit__(self, exc_type, exc_val, exc_tb): # exc_type: 異常型別 # exc_val: 異常的值 # exc_tb: 異常追蹤資訊 # 函式有返回值,true表示異常已經處理,false表示異常還未處理 print(exc_val) return truewith test() as x: # as 後面表示物件的__enter__()方法執行後的返回值 1 / 0 # 產生的異常資訊將對號入座傳入__exit__()的函式引數中 # 執行結果: division by zero# 通過 contexlib模組,通過生成器快速產生乙個上下文管理器import contexlib# yield之前的**相當於 __enter__()中的**,但是返回結果要通過 yield來返回# yield之後的**相當於 __exit__()中的**@contexlib.contexmanagerdef test(): print(1) yield "x here" print(2) with test() as x: print(3) print(x) # 執行結果:13x here2
with語句

with open("./xx.txt

Python 使用traceback捕捉異常

在python 中使用 try except exception as e 時,如果只是單存的把e記為str e 起始翻查日誌檢查錯誤時,錯誤資訊並不完整,要記錄像pycharm裡面debug時的完成錯誤資訊,可以使用traceback模組中的format exc import traceback ...

python的異常捕捉

你可能會說既然有萬能異常exception,那麼我直接用上面的這種形式就好了,其他異常可以忽略 你說的沒錯,但是應該分兩種情況去看 1.如果你想要的效果是,無論出現什麼異常,我們統一丟棄,或者使用同一段 邏輯去處理他們,那麼騷年,大膽的去做吧,只有乙個exception就足夠了。複製 s1 hell...

在Python中捕捉異常

在python中捕捉異常 在python 中,可以使用 try語句處理異常。可能引發異常的關鍵操作放在 try子句中,並且將處理異常的 編寫在 except 子句中。捕獲異常後,我們將執行什麼操作取決於我們自己。這是乙個簡單的例子。import module sys to get the type ...