Il mio ciclo while non esce quando viene premuto Ctrl + C. Apparentemente ignora la mia eccezione KeyboardInterrupt. La porzione di anello assomiglia a questo:python exit infinito while loop con KeyboardInterrupt exception
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
Anche in questo caso, non sono sicuro di quale sia il problema, ma il mio terminale non stampa anche i due avvisi di stampa che ho nella mia eccezione. Qualcuno può aiutarmi a capire questo problema?
Il tuo primo 'except KeyboardInterrupt' intercetta l'eccezione. Non sarà visibile al secondo 'except (KeyboardInterrupt, SystemExit)' se non lo si controrilancia. – eumiro
@eumiro - Ho commentato il primo KeyboardInterrupt e ho sostituito il contenuto dell'eccezione con 'pass', ma sto ancora riscontrando lo stesso problema. Ctrl + C viene ignorato (ps aux mostra anche il processo ancora in esecuzione) – sadmicrowave
@eumiro Ho anche provato a controrilanciare l'eccezione KeyboardInterrupt aggiungendo 'raise KeyboardInterrupt()' nel primo 'except KeyboardInterrupt:' tuttavia I sto ancora vivendo lo stesso problema. – sadmicrowave