我正在使用一个 python gui 应用程序,我对它进行了分叉、修改和调试(对于自定义游戏控制器,如果您必须知道的话)。该应用程序启动一个子进程来处理与 arduino 的通信,该子进程启动各种函数来处理特定操作。我正在尝试在特定函数中构建 TimeoutError 异常,以便为我提供有关 arduino 未响应的进程的更多信息,但异常似乎没有得到适当的引发/处理(阅读:我不知道怎么做)。这是对函数的调用(仍在子进程中):# STATE = Perform CNIAif n_program_state == 4: mQ.put((0, 'Starting CNIA...')) try: cnia(ser, conn, vessel) #This is the function that should raise the TimeoutError except TimeoutError: mq.put((1,'exception raised')) mq.put((1, ' '.join(err.args))) time.sleep(5) pass mQ.put((0, 'CNIA Complete')) n_program_state = 5这些是 cnia 函数的前几行,我在其中添加了一个假超时错误:def cnia(ser, conn, vessel): f_cnia_repeat = True raise TimeoutError("clnr: fake timeout2") ...当我运行程序并触发子进程时,消息队列一直到“启动 CNIA”,然后子进程挂起。我希望它引发异常,然后打印我指定的错误消息 - 我错过了什么?为笨拙的代码道歉,原作者声称没有专业知识,而我可能更糟。
添加回答
举报
0/150
提交
取消