Como lidar com exceções no Python Usando a cláusula finally
Normalmente você deseja manipular qualquer exceção que ocorre de uma maneira que não cause a sua aplicação Python para falhar. No entanto, às vezes você não pode fazer nada para resolver o problema, ea aplicação é mais definitivamente vai bater.
Menu
Neste ponto, o seu objetivo é fazer com que o aplicativo falhar graciosamente, o que significa fechamento de arquivos para que o usuário não perderá dados e executar outras tarefas dessa natureza. Qualquer coisa que você pode fazer para manter a danificação dos dados e do sistema a um mínimo é uma parte essencial de manipulação de dados para uma aplicação deixar de funcionar.
o finalmente cláusula é parte da estratégia de aplicação deixar de funcionar. Você usar esta cláusula para realizar todas as tarefas necessárias de última hora. Normalmente, o finalmente cláusula é bastante curta e utiliza apenas as chamadas que são susceptíveis de ter sucesso sem mais problema.
É essencial para fechar os arquivos, o utilizador terminar sessão, e realizar outras tarefas necessárias, e depois deixe que o acidente aplicativo antes que algo terrível acontece (como uma falha total do sistema). Com esta necessidade em mente, os passos que se seguem mostram um exemplo simples de usar o finalmente cláusula.
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:
importação systry: levantar ValueErrorprint ( "Raising uma exceção."), exceto ValueError: print sys.exit () finalmente ( "ValueError exceção!"): print ( ". Cuidar dos detalhes de última hora") print ( "Este código nunca será executar.")
Neste exemplo, o código de um levanta ValueError exceção. o exceto cláusula executa como normal quando isso acontece. A chamada para sys.exit () significa que a aplicação sai após a excepção é processada. Talvez a aplicação não pode recuperar neste caso particular, mas a aplicação termina normalmente, razão pela qual a final impressão() chamada de função nunca vai executar.
o finalmente Código cláusula sempre executa. Não importa se a exceção acontece ou não. O código que você colocar neste bloco deve ser um código comum que você sempre quer executar. Por exemplo, quando se trabalha com um arquivo, você colocar o código para fechar o arquivo para este bloco para garantir que os dados não está danificado, permanecendo na memória em vez de ir para o disco.
Escolha Run-Run Module.
Você verá uma janela aberta Python Shell. O aplicativo exibe a exceto mensagem de cláusula eo finalmente mensagem cláusula. o sys.exit () chamada impede qualquer outro código seja executado.
Comentar a chamada raise ValueError precedendo-o com dois sinais de libra, como este:
## Elevar ValueError
Removendo a exceção vai demonstrar como a finalmente cláusula realmente funciona.
Salve o arquivo no disco.
Isso garante que o Python vê a mudança.
Escolha Run-Run Module.
Você verá uma janela aberta Python Shell. O aplicativo exibe uma série de mensagens, incluindo o finalmente mensagem cláusula. Esta parte do exemplo mostra que o finalmente cláusula sempre executa, então você precisa para usá-lo com cuidado.