Как напечатать номер строки скрипта в IronPython? - PullRequest
4 голосов
/ 01 июля 2010

Я запускаю сценарий IronPython внутри приложения ac #, ловлю исключения внутри сценария и хочу выяснить строку сценария, в которую выдается исключение.Это должно быть сделано во время работы скрипта т.е.я не хочу, чтобы сценарий завершался, чтобы напечатать исключение.

Возможно ли это вообще?

Ответы [ 2 ]

1 голос
/ 01 июля 2010

Если inspect работает должным образом в IronPython (не совсем уверен), это может помочь:

import inspect

filename, linenum, funcname = inspect.getframeinfo(inspect.currentframe())[:3]
print linenum

Редактировать : альтернативное решение:

import sys

frame = sys._getframe()
print frame.f_lineno
0 голосов
/ 02 июля 2010

Не пробовал это на Ironpython, но:

import traceback

try:
    # something that raises exception
except YourException, _:
    traceback.print_exc()

Это должно показать вам трассировку стека места, где было сгенерировано исключение. Вы также можете делать что-то другое, чем просто печатать, например, печатать в строку или получать кадры стека. Документация модуля traceback расскажет вам больше.

...