Как я останавливаю программу, когда исключение повышено в Python?

Для тех, кто не знает, как использовать PDO (исходя из функций mysql_), я сделал очень, очень простую PDO-обертку , которая представляет собой один файл. Он существует, чтобы показать, насколько легко выполнять все обычные приложения, которые необходимо выполнить. Работает с PostgreSQL, MySQL и SQLite.

В основном читайте

, когда вы читаете руководство , чтобы узнать, как использовать функции PDO в реальной жизни, чтобы упростить хранить и извлекать значения в нужном формате.

Мне нужен один столбец

$count = DB::column('SELECT COUNT(*) FROM `user`);

Мне нужны результаты массива (key => value) (т. е. для создания selectbox)

$pairs = DB::pairs('SELECT `id`, `username` FROM `user`);

Мне нужен результат одной строки

$user = DB::row('SELECT * FROM `user` WHERE `id` = ?', array($user_id));

Мне нужен массив результатов

$banned_users = DB::fetch('SELECT * FROM `user` WHERE `banned` = ?', array(TRUE));

44
задан cHao 26 December 2011 в 04:56
поделиться

5 ответов

import sys

try:
  print("stuff")
except:
  sys.exit(1) # exiing with a non zero value is better for returning from an error
42
ответ дан hamaney 26 November 2019 в 21:51
поделиться

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

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

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

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

import sys 
sys.exit(exitCodeYouFindAppropriate)

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

45
ответ дан Jaroslav Bezděk 26 November 2019 в 21:51
поделиться

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

12
ответ дан Tobias Kienzler 26 November 2019 в 21:51
поделиться

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

6
ответ дан Keltia 26 November 2019 в 21:51
поделиться
import sys

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

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

5
ответ дан 26 November 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: