В скриптах Python, есть много случаев, когда прерывание клавиатуры (Ctrl-C) не убить процесс из-за голый except
статьи где-то в коде:избежать случайного ловли KeyboardInterrupt и SystemExit в Python 2.4
try:
foo()
except:
bar()
стандартное решение в Python 2.5 или выше, чтобы поймать Exception
, а не использовать голые except
пункты:
try:
foo()
except Exception:
bar()
Это работает, потому что, по состоянию на Python 2.5, KeyboardInterrupt
и SystemExit
inherit from BaseException
, а не Exception
. Однако на некоторых установках по-прежнему работает Python 2.4. Как эту проблему можно решить в версиях до Python 2.5?
(я собираюсь ответить на этот вопрос сам, но положить его здесь, так что люди ищут его можно найти решение.)
Не задавайте вопросы, чтобы вы могли сами ответить на них. SO не является wiki случайных данных; это ответы на вопросы, которые люди действительно задают *. –
@Glenn Maynard: Guess _you_ ошибаются: http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions – Curd
Отвечая на ваш собственный вопрос, если вы ответите на вопрос после запроса это нормально. Задавая вопрос *, чтобы вы могли ответить на него *, совершенно другое. –