Как мне остановить программу, когда в Python возникает исключение? - PullRequest
40 голосов
/ 13 января 2009

Мне нужно остановить свою программу, когда в Python возникает исключение. Как мне это реализовать?

Ответы [ 5 ]

43 голосов
/ 13 января 2009

Вы можете прекратить перехватывать исключение или - если вам нужно его перехватить (для некоторой пользовательской обработки), вы можете повторно поднять:

try:
  doSomeEvilThing()
except Exception, e:
  handleException(e)
  raise

Обратите внимание, что при вводе raise без передачи объекта исключения сохраняется исходная трассировка. Обычно это намного лучше, чем raise e.

Конечно - вы также можете явно позвонить

import sys 
sys.exit(exitCodeYouFindAppropriate)

Это приводит к возникновению исключения SystemExit и (если вы не перехватили его где-нибудь) завершает ваше приложение с указанным кодом выхода.

39 голосов
/ 13 января 2009
import sys

try:
  print("stuff")
except:
  sys.exit(1) # exiing with a non zero value is better for returning from an error
12 голосов
/ 13 января 2009

Если вы не обработаете исключение, оно будет распространяться вверх по стеку вызовов до интерпретатора, который затем отобразит трассировку и завершится. IOW: вам не нужно делать что-нибудь , чтобы ваш скрипт завершал работу, когда происходит исключение.

5 голосов
/ 19 ноября 2009
import sys

try:
    import feedparser
except:
    print "Error: Cannot import feedparser.\n" 
    sys.exit(1)

Здесь мы завершаем работу с кодом состояния 1. Обычно также полезно вывести сообщение об ошибке, записать в журнал и очистить.

5 голосов
/ 13 января 2009

Насколько мне известно, если исключение не перехватывается вашим скриптом, оно будет прервано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...