繁体   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