Есть ли способ использовать предупреждение или исключение в python, которые позволили бы мне поднять контроль и затем взять его с того места, где он остановился?
def foo():
#make a request
r = request.get('someRestAPI')
# get the data from request
data = r.json()
# determine the number of results the request will return
num_results = data['num_results']
if num_results > 1000:
# raise a warning to be handled main
# continue if the main doesn't catch
results = []
endpoint = data['next_page']
while endpoint:
# request the next page
r = request.get(endpoint )
data = r.json()
results.append(data['result'])
endpoint = data['next_page']
def main():
try:
foo()
catch warning:
cont = input("Warning Over 1000 results, Continue?")
if cont == 'y':
# return to function call and continue
Цель примера выше - показать возможный вариант использования. Я делаю начальный запрос к REST API и определяю количество результатов, которые запрос даст. Если у меня слишком много результатов, я хочу временно передать управление в другую область программы, чтобы определить, следует ли нам продолжать.
Я знаю, что эта программа может быть структурирована по-разному для достижения этой цели, но мне любопытно, есть ли способ специально передать управление через повышение или предупреждение функции, которая ее вызывала, и затем позволить ей продолжить с того места, где она ушла выкл.