簡體   English   中英

如何在 python 異常中取出錯誤行文本?

[英]How can i get out the error line text in python exceptions?

我可以從<string > 文件名中獲取行文本嗎?

示例代碼:

exec("""
print()
0 / 0
""")

輸出 :

Traceback (most recent call last):
  File "/data/data/com.termux/files/home/p.py", line 1, in <module>
    exec("""
  File "<string>", line 3, in <module>
ZeroDivisionError: division by zero

我需要得到這條線:

0 / 0

我會這樣寫

try:
    exec("") 
except Exception as e:
    # Somthing like this
    print(e.linetext)

我知道我可以在字符串中編寫 exec 代碼並從錯誤中讀取 lineno 並從 exec 代碼字符串中檢查行但是在我的項目中我必須使用 exec 啟動大代碼,這意味着這將導致文件增加尺寸,我需要另一種方式拋出異常請和謝謝✨♥️

使用traceback模塊

這是實現相同結果的另一種方法

import sys, os

try:
    raise NotImplementedError("No error")
except Exception as e:
    exc_type, exc_obj, exc_tb = sys.exc_info()
    print(exc_tb.tb_lineno)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM