Как остановить выполнение функции сразу после возникновения исключения? [Python] - PullRequest
0 голосов
/ 30 апреля 2020

Допустим, у меня есть следующий код:

def main():
  try:
    int('string_for_ValueError')
  except ValueError:
    print('How to stop further execution right here?')
  print('Executed')

main()

Как видите, строка print('Executed') будет выполняться каждый раз, несмотря ни на что. Моя цель - остановить выполнение текущей функции сразу после того, как except ValueError пойман.

Итак, вопрос - как это сделать?

ОБНОВЛЕНИЕ

Это Функция является частью многопоточного алгоритма. Итак, если эта функция не может быть выполнена из-за except ValueError - эта функция должна остановиться и ничего не возвращает. Но другие темы должны работать после этого.

Ответы [ 2 ]

2 голосов
/ 30 апреля 2020

Вы можете просто вызвать ошибку с сообщением, чтобы остановить выполнение. Если вы используете try, за исключением того, что вы хотите, чтобы программа не прекращала выполнение при обнаружении ошибок. Если вы действительно хотите это сделать, вы можете сделать это таким образом, но вы можете сделать это несколькими способами. Мой вопрос: почему вы ловите эту ошибку, если хотите остановить программу?

РЕДАКТИРОВАТЬ ПОСЛЕ ОБНОВЛЕНИЯ: Вы можете добавить возврат к своей функции.

def main():
  try:
    int('string_for_ValueError')
  except ValueError:
    print('How to stop further execution right here?')
    return "to something"
  print('this line not executed because function sees the return')

main()
0 голосов
/ 30 апреля 2020

Вы можете выйти из скрипта Python, используя exit("Failure"), где строка является необязательным сообщением.

...