Skip to content

异常类型

pywxauto 定义的自定义异常。

异常层级

WxAutoError (基类)
├── WxWindowNotFoundError
├── WxControlNotFoundError
├── ControlTimeoutError
├── SendError
├── OCRError
├── LoginError
└── RegistryError

WxAutoError

所有 pywxauto 异常的基类。

python
from pywxauto.wx import WxAutoError

try:
    wx.send_text("张三", "hello")
except WxAutoError as e:
    print(f"操作失败: {e}")

WxWindowNotFoundError

微信窗口未找到。

常见原因:

  • 微信未启动
  • 微信未登录
  • 指定的 PID 无效

WxControlNotFoundError

微信控件未找到。

常见原因:

  • 窗口结构不匹配(微信版本更新)
  • 控件尚未加载完成
  • 界面状态不正确

ControlTimeoutError

等待控件超时。

常见原因:

  • 网络延迟导致页面加载慢
  • 等待超时时间设置过短

SendError

消息发送失败。

常见原因:

  • 联系人不存在
  • 文件路径无效
  • 被对方拉黑
  • 消息内容为空

OCRError

OCR 识别失败。

常见原因:

  • OCR 引擎未正确安装
  • wcocr 插件缺失
  • 图片无法读取

LoginError

登录相关错误。

常见原因:

  • 登录超时
  • 账号被限制
  • 网络异常

RegistryError

注册表操作失败。

常见原因:

  • 权限不足
  • 注册表键不存在
  • 微信安装信息异常

异常处理示例

python
from pywxauto import Weixin
from pywxauto.wx import (
    WxAutoError,
    WxWindowNotFoundError,
    SendError,
    OCRError,
)

try:
    wx = Weixin()
except WxWindowNotFoundError:
    print("微信未启动或未登录")
    exit(1)

try:
    wx.send_text("张三", "hello")
except SendError as e:
    print(f"发送失败: {e}")
except WxAutoError as e:
    print(f"其他错误: {e}")