在編碼中難免會遇到各種各樣的問題,尤其是在對資料進行處理的時候會因為資料的各種問題而丟擲異常,如果將資料捨棄太可以,所以資料都過一遍邏輯又太費時間。如果只是對出錯的部分進行處理的話會很好的解決問題。
python中錯誤處理的語句是:
try....except.....finally
在有可能出錯的**前面加上try,然後捕獲到錯誤之後,在except下處理,finally部分無論try會不是捕獲錯誤都會執行,而且不是必須的。
以簡單的除以0的為例:
i = 0
j = 12
try:
n = j/i
except zerodivisionerror as e:
print("except:",e)
i = 1
n = j/i
except valueerror as value_err: #可以寫多個捕獲異常
print("valueerror")
finally:
print("final print")
輸出結果為:
except: division by zero
final print
12.0
如果不寫丟擲異常的資料,會報如下錯誤:
可以將出現的錯誤型別寫入到except中作為捕獲條件。
也可以同時將多個錯誤型別寫入到乙個except下,對捕獲到的一起處理:
try:
n = j/i
except (zerodivisionerror,valueerror) as e:
print("except:",e)
i = 1
如果實在不知道是什麼錯誤型別,或者想偷懶也可以捕獲所有的錯誤型別:
except exception as e:
print("except:",e)
「exception」已經包含了大部分的錯誤型別。
總結:1,try...except...finally,可能出錯的**寫在try後,對錯誤的處理寫在except後
2,except 可以監聽多個錯誤型別,也可以寫多個except對不同的錯型別分開處理;
3,如果不知道什麼錯誤型別,可以寫exception來監聽所有錯誤型別
python對於requests的封裝
由於requests是http類介面的核心,因此封裝前考慮問題比較多 1.對多種介面型別的支援 2.連線異常時能夠重連 3.併發處理的選擇 4.使用方便,容易維護 當前並未全部實現,後期會不斷完善。重點提一下併發處理的選擇 python的併發處理機制由於存在gil的原因,實現起來並不是很理想,綜合考...
python對於時間的抽象
datetime.date 包含year,month,day的日期 核心api date.fromtimestamp timestamp 從時間戳來構造 timetuple 生成時間資料結構 time.struct time year,month,day,0,0,0,d.weekday yday,1...
python對於sqlserver的基本操作
基本步驟 匯入pymssql庫 建立連線conn 常用引數 host 主機 user 使用者名稱 password 密碼 database 資料庫 charset 字符集,utf8 as dict 查詢結果list列表中的元素是否以字典返回 預設false,列表中元素為元組 autocommit 自...