Files
DCU_DesktopController/.qoder/repowiki/knowledge/zh/ESP32 DCU 调试控制台仓库根/error_handling.md
T

1.0 KiB

1. 总体方法

本仓库的「错误处理」由三块构成:

  • Python 服务端 (esp32_server.py):大量使用裸 except Exception: 包裹每个 I/O / 子进程/线程入口,把网络/文件/Windows 句柄异常吞掉并继续运行;不存在自定义异常类型体系。
  • 前端工具脚本 (scripts/*.py):通过 raise SystemExit(...) + urllib.error.HTTPError 区分成功/失败路径,主流程用 try 捕获异常后终止。没有统一的 Result/Either 封装。
  • 浏览器前端 (js/…):采用「Promise + fetch AbortSignal.timeout → throw Error」的异步错误模型;所有可见故障统一经 toast.js 的 showToast(msg, 'success'|'error'|'warning') 在 UI 弹出(5s 去重),并通过 log.js 的 addLog(level, tag, msg) 结构化写入页面日志面板。BLE OTA、OTA 上传等长链路则在各自模块内维护状态机 (stages.js / progress.js / session.js),通过 setBleStageError、cleanupAfterOtaFailure 等函数显式转入错误阶段。