下面代码可以精准到错误的行号
import traceback
def format_exception(e: BaseException, *, tracebackDetail: bool = False):
te = traceback.format_exception(e, value=e, tb=e.__traceback__)
if tracebackDetail:
return "".join(te)
elif len(te) > 1:
context = te[-2].strip().replace("\n", ":")
return f"{e!r}, {context}"
else:
return f"{e!r}"