你是不是經常在使用一些系統庫或者第三方模組的時候,會出現一些既不是異常也不是錯誤的警告資訊?
這些警告資訊,有時候非常多,對於新手容易造成一些誤判,以為是程式出錯了。
實則不然,異常和錯誤,都是程式出現了一些問題,但是警告不同,他的緊急程度非常之低,以致於大多數的警告都是可以直接忽略的。
如果不想顯示這些告警資訊,可以直接加上引數 -w ignore 引數,就不會再顯示了。
能捕獲的只有錯誤異常,但是通過一系列的操作後,你可以將這些警告轉化為異常。
這樣一來,你就可以像異常一樣去捕獲他們了。
在不進行任何設定的情況下,警告會直接列印在終端上。
在 warnings 中有一系列的過濾器。
當你指定為 error 的時候,就會將匹配警告轉換為異常。
之後你就可以通過異常的方式去捕獲警告了。
import warnings
warnings.filterwarnings('error')
try:
warnings.warn("deprecated", deprecationwarning)
except warning as e:
print(e)
執行後,效果如下
如果你不想對在**中去配置將警告轉成異常。
import warnings
try:
warnings.warn("deprecated", deprecationwarning)
except warning as e:
print(e)
可以在執行的時候,只要加上乙個引數 -w error ,就可以實現一樣的效果
$ python3 -w error demo.py
deprecated
除了上面的方法之外 ,warnings 還自帶了個捕獲警告的上下文管理器。
當你加上 record=true 它會返回乙個列表,列表裡存放的是所有捕獲到的警告,我將它賦值為 w,然後就可以將它列印出來了。
import warnings
def do_warning():
warnings.warn("deprecated", deprecationwarning)
with warnings.catch_warnings(record=true) as w:
do_warning()
if len(w) >0:
print(w[0].message)
執行後,效果如下
python異常捕獲 如何捕獲Python中的異常
python 提供了try except語句捕獲並處理異常,該異常處理語句的基本語法結構如下 try 可能產生異常的 塊 except error1,error2,as e 處理異常的 塊1 except error3,error4,as e 處理異常的 塊2該格式中,括起來的部分可以使用,也可以省...
python 忽略警告
初學python,執行示例 一直列印出警告資訊,很是討厭,所以查詢了下忽略python警告資訊的方法 示例 python w ignore python 檔名.py 介紹了忽略警告資訊,那如何主動捕捉警告資訊呢?如下 這裡用到warnings模組,看如下 import warnings def fx...
python基礎 警告
出現了一些需要讓使用者知道的問題,但又不想停止程式,這時候我們可以使用警告 首先匯入警告模組 in 1 import warnings 在需要的地方,我們使用warnings中的warn函式 warn msg,warningtype userwarning in 2 defmonth warning...