У меня самая странная проблема, с которой я когда-либо сталкивался в жизни.
У меня есть часть кода, которая выглядит следующим образом:
class AzureDevOpsServiceError(Exception):
pass
skip = ["auto"]
def retrieve_results():
print(variable_not_defined)
... # some useful implementation
if not "results" in skip:
try:
print("before")
retrieve_results()
print("after")
except AzureDevOpsServiceError as e:
print(f"Error raised: {e}")
Очевидно, это вызовет ошибкупотому что variable_not_defined
, ну, в общем, не определено.
Однако, по некоторым странным причинам, код выполняется правильно и печатает
before
after
Я попытался вызвать функцию с аргументом (retrieve_results(1234)
) или добавление аргумента в функцию (def retrieve_results(arg1)
и retrieve_results()
): обе модификации вызовут исключение, поэтому очевидно, что функция вызывается.
Любой сталкивался с подобной проблемой и знает, чтослучается?
К вашему сведению: на самом деле моя реализация выглядит так:
from azure.devops.exceptions import AzureDevOpsServiceError
import logging
def _retrieve_manual_results(connect: Connectivity, data: DataForPickle) -> None:
"""Retrieve the list of Test Results"""
print("G" + ggggggggggggggggggggggggggggggggggggg)
logger = connect.logger
data.run_in_progress = [165644]
if __name__ == "__main__":
p = ...
connect = ...
data = ...
if not "results" in p.options.skip:
try:
print("........B.........")
_retrieve_manual_results(connect, data)
print("........A.........")
except AzureDevOpsServiceError as e:
logging.error(f"E004: Error while retrieving Test Results: {e}")
logging.debug("More details below...", exc_info=True)