Python进阶_wxpy学习:异常chu'li
目錄:
- 目錄:
- 前言
- 異常處理
- 異常的拋出和捕捉
- 已知錯誤碼
- 注意
前言
學(xué)習(xí)完了python的基本概念和相應(yīng)操作后,就要進入實戰(zhàn)階段了,首先選的是和微信端口自動交互的wxpy。
本文操靠wxpy的官方文檔:官方文檔
機器人對象可以參考前文:機器人對象
聊天對象可以參考前文:聊天對象
消息處理可以參考前文:消息處理
微信監(jiān)控可以參考前文:微信監(jiān)控
探索調(diào)試可以參考前文:探索調(diào)試
實用組件可以參考前文:實用組件
異常處理
異常的拋出和捕捉
每當(dāng)使用 wxpy 向微信發(fā)出請求 (例如發(fā)送消息、加好友、建群等操作),wxpy 都會在收到服務(wù)端響應(yīng)后進行檢查。
若響應(yīng)中的錯誤碼不為 0,程序?qū)伋?ResponseError 異常。
class wxpy.ResponseError(err_code, err_msg)[源代碼]當(dāng) BaseResponse 的返回值不為 0 時拋出的異常err_code錯誤碼 (int)err_msg錯誤消息 (文本),但可能為空捕捉異常:
try:# 嘗試向某個群員發(fā)送消息group.members[3].send('Hello') except ResponseError as e:# 若群員還不是好友,將拋出 ResponseError 錯誤print(e.err_code, e.err_msg) # 查看錯誤號和錯誤消息已知錯誤碼
通常來說,每個錯誤碼表示一種類型的錯誤。
但因微信未公開 (也沒有義務(wù)公開) 這套錯誤碼體系的具體說明,我們只能根據(jù)經(jīng)驗猜測部分錯誤碼的定義。
以下為一些常見的已知錯誤碼。歡迎提交 PR 進行完善。
“`
1205
通常因為操作頻率過高。需要控制頻率,避免再次引起該錯誤。
注意
Web 微信對 加好友、建群 這兩種操作的頻率限制尤其嚴(yán)格!
對于微信而言,為了機器人避免打擾其他用戶,以及控制服務(wù)器的負載壓力,需要對各種不同的操作進行頻率限制。
通常每種操作可有多層頻率限制,而每層頻率限制分為兩個參數(shù):
周期、次數(shù),分布表示: 在 x 周期內(nèi),只能發(fā)送 y 個請求。舉個例子:
對于 發(fā)送消息 操作,可能會是這樣 (數(shù)值為虛構(gòu)):層 限制周期 限制次數(shù)1 2 分鐘 1202 10 分鐘 3003 1 小時 10004 24 小時 2000可能會有用戶在 1 分鐘內(nèi)狂發(fā) 100 條消息。但這樣的頻率不可能維持一整天,所以一天內(nèi) 3000 條是足夠的。通過以上方式,微信可實現(xiàn)較為合理的限制。1204
通常因為操作對象不為好友關(guān)系。例如嘗試向一位不為好友的群員發(fā)送消息時,會引起這個錯誤。
1100, 1101, 1102
通常表示機器人已經(jīng)掉線,需要重新登錄。
請重新初始化 Bot 對象,并重新注冊消息。
因為重新登錄后,聊天對象的 user_name 可能已經(jīng)變化,所以原先的消息注冊也會因此失效。總結(jié)
以上是生活随笔為你收集整理的Python进阶_wxpy学习:异常chu'li的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java oracle to date_
- 下一篇: android图片闪动动画,androi