traceback
Цей модуль надає стандартний інтерфейс для виділення, форматування та друку трасування стека програм Python. Він точно імітує поведінку інтерпретатора Python, коли він друкує трасування стека.
Как правильно исправлять ошибки в коде https://python-scripts.com/python-tracebac
Вивести номер рядка, з коду.
Наприклад, моя ф-ція send_response в рязі передачі помилки повертає номер рядка, де була викликана.
# ------------------------------------------------------------------------------
def send_response(code, **data):
data['lineno'] = 0 if code == 0 else traceback.extract_stack()[-2].lineno
response = {} # словник-відповідь в JS
response['code'] = code
response['data'] = data
log.debug(f'Send Response = {response}')
print(json.dumps(response))
sys.exit(code)
traceback.extract_stack()[-2]
- (передостанній [-2]) - виклик цієї функції. Рахуємо від кінця, т.я. викликів може бути кілька, і перший елемент у стеку буде відповідати самому зовнішньому виклику (наприклад, якщо спочатку викликається функція main, а з неї функція, то перший елемент стека буде викликом функції main)
Last updated