Como lidar com um Exception Individual em Python
Algumas coisas que você desenvolver em Python tem um terrível hábito de cuspir excepções quando os valores das entradas do usuário inesperados. Parte da solução é proporcionar a verificação de intervalo. No entanto, a verificação de intervalo não superar o problema de um texto do usuário digitando, como Olá, em vez de um valor numérico esperado. manuseamento de excepção fornece uma solução mais complexa para o problema, tal como descrito nas etapas seguintes.
Menu
- Abra uma janela do python arquivo.
- Digite o seguinte código para a janela - pressione enter após cada linha:
- Escolha run-run module.
- Digite olá e pressione enter.
- Execute as etapas 3 e 4 novamente, mas digitar 5.5, em vez de olá.
- Execute as etapas 3 e 4 novamente, mas digite 22 em vez de olá.
- Execute as etapas 3 e 4 novamente, mas digite 7 em vez de olá.
- Execute as etapas 3 e 4 novamente, mas pressione ctrl + c, cmd + c, ou a alternativa para yourplatform em vez de digitar nada.
Abra uma janela do Python Arquivo.
Você vê um editor no qual você pode digitar o código de exemplo.
Digite o seguinte código para a janela - pressione ENTER após cada linha:
tentar: Valor = int (input ( "Digite um número entre 1 e 10:")), exceto ValueError: ( "Você deve digitar um número entre 1 e 10") print else: if (valor> 0) e (Valor lt; = 10): print ( "Você digitou:" Value) else: print ( "O valor que você digitou está incorreta!")
O código dentro do experimentar bloco tem suas exceções manipulados. Neste caso, a manipulação da exceção significa obter a entrada do usuário usando o int (input ()) chama. Se ocorrer uma exceção fora deste bloco, o código não lidar com isso.
Com confiabilidade em mente, a tentação pode ser para incluir todo o código executável em um experimentar bloco de modo que cada exceção seria tratado. No entanto, você quer ter a lidar com a sua exceção pequena e específica para fazer localizar o problema mais fácil.
o exceto bloco procura uma exceção específica, neste caso: ValueError. Quando o usuário cria uma ValueError excepção, digitando Olá, em vez de um valor numérico, este bloco excepção particular é executada. Se o utilizador tivesse que gerar alguma outra excepção, este exceto bloco não iria lidar com isso.
o outro bloco contém todo o código que é executado quando o experimentar código de bloco é bem sucedida (não gera uma exceção). O restante do código é neste bloco, porque você não quer executá-lo a menos que o usuário não fornecer entrada válida. Quando o usuário fornece um número inteiro como entrada, o código pode então gama verificá-lo para garantir que ele está correto.
Escolha Run-Run Module.
Você verá uma janela aberta Python Shell. A aplicação pede que você digite um número entre 1 e 10.
Digite Olá e pressione Enter.
O aplicativo exibe uma mensagem de erro.
Execute as Etapas 3 e 4 novamente, mas digitar 5.5, em vez de Olá.
A aplicação gera a mesma mensagem de erro.
Execute as Etapas 3 e 4 novamente, mas digite 22 em vez de Olá.
O aplicativo exibe a mensagem de erro intervalo esperado. manipulação de exceção não eliminar erros alcance. Você ainda deve verificá-los separadamente.
Execute as Etapas 3 e 4 novamente, mas digite 7 em vez de Olá.
Desta vez, o aplicativo finalmente relata que você forneceu um valor correto de 7. Mesmo que ele parece ser um monte de trabalho para executar este nível de verificação, você não pode realmente ter certeza de que a sua candidatura está a funcionar correctamente sem ele.
Execute as Etapas 3 e 4 novamente, mas pressione Ctrl + C, Cmd + C, ou a alternativa para yourplatform em vez de digitar nada.
A aplicação gera um KeyboardInterrupt exceção. Porque essa exceção não é tratada, ainda é um problema para o usuário.