Мой цикл while не выходит, когда нажата клавиша Ctrl + C. Это, похоже, игнорирует исключение KeyboardInterrupt. Часть цикла выглядит следующим образом:python exit бесконечный цикл while с исключением KeyboardInterrupt
while True:
try:
if subprocess_cnt <= max_subprocess:
try:
notifier.process_events()
if notifier.check_events():
notifier.read_events()
except KeyboardInterrupt:
notifier.stop()
break
else:
pass
except (KeyboardInterrupt, SystemExit):
print '\nkeyboardinterrupt found!'
print '\n...Program Stopped Manually!'
raise
Опять же, я не уверен, что проблема, но мой терминал никогда даже не печатает два предупреждения печати у меня есть в моем исключении. Может кто-нибудь помочь мне понять эту проблему?
Ваш первый 'except KeyboardInterrupt' ловит исключение. Он не будет отображаться во втором 'except (KeyboardInterrupt, SystemExit)', если вы его повторно не поднимаете. – eumiro
@eumiro - я прокомментировал первый KeyboardInterrupt и заменил содержимое исключения на «pass», но я все еще испытываю ту же проблему. Ctrl + C игнорируется (ps aux показывает, что процесс все еще запущен) – sadmicrowave
@eumiro Я также попытался повторно поднять исключение KeyboardInterrupt, добавив 'raise KeyboardInterrupt()' в пределах первого 'except KeyboardInterrupt:' однако я «Я все еще испытываю одну и ту же проблему. – sadmicrowave