Índice:
- 1Abra uma janela do arquivo Python.
- 2 Digite o seguinte código na janela - pressionando Enter após cada linha:
- Você vê uma janela do Python Shell aberta. O aplicativo solicita ao usuário que digite um número inteiro.
- O aplicativo exibe uma mensagem de erro e pergunta se você deseja tentar novamente.
- O aplicativo solicita que você insira um número inteiro novamente.
- O aplicativo exibe novamente a mensagem de erro e pergunta se você deseja tentar novamente.
- A aplicação termina. Observe que a mensagem é a da exceção interna. O aplicativo nunca chega à exceção externa porque o manipulador de exceção interno fornece tratamento genérico de exceções.
- Você vê uma janela do Python Shell aberta. O aplicativo solicita ao usuário que digite um número inteiro.
- A aplicação termina. Observe que a mensagem é a da exceção externa. Nas etapas anteriores, o usuário encerra o aplicativo pressionando uma tecla de interrupção. No entanto, o aplicativo usa dois manipuladores de exceção diferentes para resolver o problema.
Vídeo: Curso Python #23 - Tratamento de Erros e Exceções 2024
Às vezes você precisa colocar uma rotina de tratamento de exceção dentro de outro em um processo chamado . Quando você aninha rotinas de tratamento de exceção, o Python tenta primeiro localizar um manipulador de exceção no nível aninhado e depois se move para as camadas externas. Você pode aninhar as rotinas de gerenciamento de exceções tão profundamente quanto necessário para tornar seu código seguro.
Um dos motivos mais comuns para usar uma camada dupla de código de tratamento de exceção é quando você deseja obter a entrada de um usuário e precisa colocar o código de entrada em um loop para garantir que você realmente tenha as informações necessárias. Os seguintes passos demonstram como este tipo de código pode funcionar.
1Abra uma janela do arquivo Python.
Você vê um editor no qual você pode digitar o código de exemplo.
2 Digite o seguinte código na janela - pressionando Enter após cada linha:
TryAgain = True enquanto TryAgain: try: Value = int (input ("Digite um número inteiro")), exceto ValueError: print ("You deve digitar um número inteiro! ") tente: DoOver = input (" Tente novamente (y / n)? ") exceto: print (" OK, consulte a próxima vez! ") TryAgain = False else: if (str. upper (O que você quer?) Try=Go = Falso exceto KeyboardInterrupt: print ("Você pressionou Ctrl + C!") Print ("See you next time!") TryAgain = False else: print (Value) TryAgain = False > O código começa criando um loop de entrada. O uso de loops para este tipo de finalidade é realmente bastante comum em aplicativos porque você não deseja que o aplicativo termine sempre que um erro de entrada é feito. Este é um loop simplificado, e normalmente você cria uma função separada para manter o código.
Uma exceção ValueError pode ocorrer quando o usuário comete um erro. Porque você não sabe por que o usuário insere o valor errado, você deve perguntar se o usuário deseja tentar novamente. Claro, obter mais informações do usuário pode gerar outra exceção. A tentativa interna … exceto o bloco de código manipula essa entrada secundária.
3 Escolha o Run → Run Module.
Você vê uma janela do Python Shell aberta. O aplicativo solicita ao usuário que digite um número inteiro.
O aplicativo exibe uma mensagem de erro e pergunta se você deseja tentar novamente.
5 Digite Y e pressione Enter.
O aplicativo solicita que você insira um número inteiro novamente.
6Type 5. 5 e pressione Enter.
O aplicativo exibe novamente a mensagem de erro e pergunta se você deseja tentar novamente.
A aplicação termina. Observe que a mensagem é a da exceção interna. O aplicativo nunca chega à exceção externa porque o manipulador de exceção interno fornece tratamento genérico de exceções.
8 Escolher executar → Módulo de execução.
Você vê uma janela do Python Shell aberta. O aplicativo solicita ao usuário que digite um número inteiro.
9 Pressione Ctrl + C, Cmd + C ou outra combinação de teclas para interromper a aplicação.