如何捕获micropython 报错的详细信息 行数 具体错误内容等

本文介绍如何在Python中使用`sys.print_exception`和自定义类`ERRINFO`来捕获并获取程序运行时的错误详细信息和行号,适用于MPy等无直接支持的模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电脑端,可以用traceback来找
mpy没有这个模块 咋办?
自己搞啊
翻WIKI 有个sys.print_exception函数
然后简单包装一下 完事儿 从不废话 都是干货

import io
import sys

class ERRINFO(io.IOBase):
    def __init__(self):
        self.info=''
        self.err_line=''
        self.linemark=False
    def write(self,t):
        s=t.decode()
        if s!='\n':
            if self.linemark:
                self.err_line=s
                self.linemark=False
            self.info+=s
            if s=='", line ':
                self.linemark=True

tb=ERRINFO()

a=1
info=io.BytesIO()
try:
    print(a/0)
except Exception as e:
    print(e)
    traceback=sys.print_exception(e,tb)
    
print(tb.info)
print(tb.err_line)

错误详细信息和行数都拿到了

说白了就是把repl打印的错误信息get了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值