三、广播遥控

第12课 消息发送的异常处理

任务场景:消息发送的异常处理
任务场景:消息发送的异常处理

一、任务目标

接收回调用 try/except 包住 JSON 解析,坏包只打印异常。完整代码还要核对方序号是否等于自己刚发的序号,相符点阵显示 OK,发送时显示等号。

二、我们要学什么

  • 学习要点:无线 JSON 可能坏掉,解析要包异常
  • 本课过关:能指出体验 except 只 print(e);完整代码序号相符才显示 OK。
  • 示例对齐:体验题对应 「3-4-1 消息发送的异常处理」;完整代码对应 「3-4-2 带反馈消息发送」。

三、本节要点

体验 3-4-1 已有回执逻辑,但没有用序号比对亮 OK。点阵反馈是 3-4-2。

1读场景明确真实任务
2对要点先接住坏包,再对序号
3载入运行本课积木/代码

四、解题思路

  • 输入:T2 发送;无线收到的字符串。
  • 输出:体验:打印序号或异常。完整代码:OK 与 =。
  • 生活对照:快递单扫不出来要报错,不能让程序崩。
  • 验证现象:正常包打印序号;完整代码对上号才 OK。

本课主要用到:无线广播、JSON、try;完整代码另用点阵。

  1. 1recv 里 try:loads 并处理。
  2. 2except:print(e)。
  3. 3完整代码 if 序号相等则 shows OK。
  4. 4发送当下 shows =。

流程示意(可对照左侧文字)

任务:消息发送的异常…判断传感或变量是否达到阈值…搭出主循环,让程序一直运行…载入官方示例后先点运行,对…

五、图形块功能讲解

下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。

图形块分类作用本课用法
尝试执行
控制捕获运行错误并保证收尾代码执行。体验:recv 里 try/except 包住 JSON。

六、知识点讲解

本课核心是坏包不要崩。再往上才是「这条回执对不对得上我刚发的序号」。

try/except

loads 失败就打印异常,回调结束。

序号核对

完整代码 dictcmd['序号'] == mydict['序号'] 才 OK。

发送反馈

刚发出去时点阵显示 =,表示「已送出、等回执」。

  • 过关:能说出体验没有点阵 OK。

先看异常是否被打印,再看完整代码的 OK。

七、编程练习

点「载入」打开 MixVM(board=mixgo_zero_design)。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

3-4-1 消息发送的异常处理.mix。载入后运行。

八、课堂练习

先完成两道判断题,再完成选择题;全部选定后点「检查」。

  1. 判断:体验题解析失败会让整个程序停止。

  2. 判断:完整代码只有回执序号等于自己当前序号才显示 OK。

  3. 完整代码按 T2 发送当下点阵显示?

  4. 体验对 JSON 解析放在?

九、本节小结

记住:解析包在 try 里;对序号亮 OK 是 3-4-2。