1
resposta

Traceback waiter.acquire() + not_empty.wait() após keyboard interrupt

Ao rodar meu código usando tanto o "python nome_script.py" e também com o python3 recebo o seguinte erro Traceback após pressionar ctrl C para cancelar meu script...

Traceback (most recent call last):
  File "/home/kali/Scripts/client.py", line 24, in <module>
    con()
  File "/home/kali/Scripts/client.py", line 9, in con
    s = q.get()
  File "/usr/lib/python3.10/queue.py", line 171, in get
    self.not_empty.wait()
  File "/usr/lib/python3.10/threading.py", line 320, in wait
    waiter.acquire()
KeyboardInterrupt
1 resposta

Olá, André. Tudo bem?

No Python, durante a execução de um programa, ao pressionar as teclas ctrl+C é lançada a exceção de KeyboardInterrupt. Isso interrompe a execução e mostra o erro que você está recebendo.

Caso queria utilizar o comando ctrl+C sem que essa exceção seja acionada, basta utilizar o tratamento de exceções com um bloco de try/except. O código ficaria semelhante aos exemplos a seguir.

Você pode tanto exibir uma mensagem quando for pressionado o ctrl+C:

try:
    # Seu código vem aqui
except (KeyboardInterrupt):
    print("Voce pressionou Ctrl+C para interromper o programa!")

Saída do código quando utilizar o ctrl+C: Voce pressionou Ctrl+C para interromper o programa!

Quanto não exibir mensagem nenhuma:

try:
    # Seu código vem aqui
except (KeyboardInterrupt):
    pass

O código que estiver dentro do bloco try vai ser executado normalmente. Caso seja pressionado o comando ctrl+C o código que estiver dentro do bloco except será executado. Assim você evita receber o erro de KeyboardInterrupt ao interromper o programa utilizando o ctrl+C e o programa será encerrado conforme o esperado.

Caso queira se aprofundar mais sobre tratamento de erros e exceções no Python, deixo como recomendação um artigo aqui da Alura sobre o assunto:

Espero ter ajudado. Qualquer outra dúvida estou a disposição.

Abraços. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!