簡體   English   中英

如何獲取在Python中發生異常或錯誤的行號?

[英]How to get the line number on which exception or error occurred in Python?

我有一個像這樣的Django ORM查詢:

try:
    specialization_object = Specialization.objects.get(name="My Test Specialization")
except Exception as ex:
    print(ex)

當發生異常時,它會打印“不存在專業匹配查詢。”,但不會打印行號。 如何跟蹤發生異常或錯誤的行號?

嘗試這個:

import logging
logger = logging.getLogger(__name__)

try:
    specialization_object = Specialization.objects.get(name="My Test Specialization")
except Exception as ex:
    logger.info(ex, exc_info=True) # exc_info will add traceback

進一步閱讀請看這里

如果您由於某種原因無法使用日志記錄,則有標准的包traceback ,您可以執行以下操作:

traceback.print_exc(file=sys.stdout)

我剛剛想出一個簡單的解決方案:

import traceback
try:
    specialization_object = Specialization.objects.get(name="My Test Specialization")
except Exception as ex:
    print(traceback.format_exc())

暫無
暫無

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

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