Vòng lặp while của tôi không thoát khi nhấn Ctrl + C. Dường như bỏ qua ngoại lệ KeyboardInterrupt của tôi. Phần vòng lặp trông giống như sau:python thoát vô hạn trong khi vòng lặp với ngoại lệ 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
Một lần nữa, tôi không chắc vấn đề là gì nhưng thiết bị đầu cuối của tôi thậm chí không in hai cảnh báo in mà tôi có trong ngoại lệ của mình. Ai đó có thể giúp tôi tìm ra vấn đề này không?
Đầu tiên của bạn 'except KeyboardInterrupt' bắt ngoại lệ. Nó sẽ không được hiển thị cho lần thứ hai 'except (KeyboardInterrupt, SystemExit)' nếu bạn không nâng cấp lại nó. – eumiro
@eumiro - Tôi nhận xét ra KeyboardInterrupt đầu tiên và thay thế các nội dung của ngoại lệ với 'pass' nhưng tôi vẫn gặp vấn đề tương tự. Ctrl + C đang được bỏ qua (ps aux cho thấy quá trình vẫn chạy tốt) – sadmicrowave
@eumiro Tôi cũng đã cố gắng nâng cao lại ngoại lệ KeyboardInterrupt bằng cách thêm 'raise KeyboardInterrupt()' trong 'except KeyboardInterrupt:' đầu tiên vẫn gặp vấn đề tương tự. – sadmicrowave