O que é um AssertionError em Python?
Erros de declaração são um conceito de programação que ocorre quando um programador escreve ou cria um bloco de código usado para declarar um critério ou condição a ser satisfeita antes que o módulo seja executado. Como qualquer erro do Python, o controle é transferido para a linha de código subsequente se a condição especificada quando a asserção foi declarada verdadeira. Se for falso, por outro lado, um erro ou exceção é gerado e o programa é interrompido. A instrução assert pode ser usada em várias linguagens de programação com suas sintaxes específicas porque é independente da linguagem. É uma subclasse ou uma instância da classe Exception. Python AssertionError tem a seguinte sintaxe:
Sintaxe: assert condition, error_message(opcional)
Exemplo
Inseriremos a idade de uma pessoa como entrada e, se for menor que zero, o console gerará um erro de declaração.
Agora, e se entrarmos em uma idade menor que 0?
Depurar seu código usando este método é mais simples, facilitando a localização de erros e a correção de bugs no programa.
Como o AssertionError funciona em Python
A linguagem Python inclui uma instrução assert que pode ser usada para gerar saídas de mensagens de erro simples com asserções lógicas. Quando a declaração de declaração falha, uma 'exceção' AssertionError é gerada. Em Python, as classes de exceção são derivadas da classe BaseException. A classe BaseException, que também é a classe base da classe AssertionError, é de onde deriva a classe Exception. Sempre deve haver um código de tratamento de exceção apropriado para lidar com a falha de uma instrução assert sempre que uma for usada. O manipulador de exceção padrão em Python imprimirá a mensagem de erro escrita pelo programador, mas o erro também pode ser tratado ou resolvido sem uma mensagem de erro.
Implementando AssertionError em Python
A seguir estão vários exemplos de AssertionError em Python:
Exemplo
Neste exemplo, escreveremos um programa Python para exibir um AssertionError em um programa que encontra a área de um círculo.
O valor do raio “r” é passado como entrada para uma função no programa anterior que é criada para encontrar a área do círculo. A declaração assert é então usada para determinar se o valor fornecido ou o raio “r” está abaixo de zero e, se um valor negativo for fornecido a ele, uma exceção será gerada. A área do círculo será retornada com base no valor do raio “r” fornecido à função. Primeiro, a função é executada com um valor de r igual a 3. A função é então executada com o valor 2,5. O AssertionError é gerado quando usamos um valor negativo de “r”, ou seja, “-1”.
Vamos tentar outro exemplo para exibir a ocorrência de um erro de Asserção.
Exemplo
Neste exemplo, o programa determinará se o valor do denominador é diferente de zero.
A mensagem de erro do erro de declaração é exibida no programa anterior. Criamos duas variáveis (a e b), e valores inteiros especificam as variáveis. A segunda variável, ou seja, b é então testada para ver se não é igual a 0 usando a instrução assert. Caso contrário, a mensagem de erro é impressa. Caso contrário, o resultado da divisão do primeiro número pelo segundo valor é exibido. Na imagem anterior, a saída do programa é exibida.
Aplicações de AssertionError
Os outros usos benéficos do erro de afirmação incluem:
- Asserção auxilia na avaliação de valores de parâmetros
- As declarações ajudam a monitorar o tipo de entrada e se esse valor é válido
- Além disso, as asserções ajudam a identificar se outro desenvolvedor de código está fazendo uso indevido de uma interface
- Asserções ajudam a monitorar continuamente a saída do programa
Como podemos evitar os erros de declaração em Python
- O sinalizador -O em um programa Python pode ser usado para desabilitar todas as declarações de asserção. É importante ter em mente que as instruções que vêm após uma declaração de declaração não serão executadas se desativarmos as declarações de declaração.
- A variável de ambiente também pode definir um sinalizador para desativar as instruções de asserção. Todos os processos e aplicativos que usam ou herdam o ambiente são impactados nessa situação.
- Em Python, a abordagem mais simples para evitar erros de declaração é tratá-los manualmente. Se garantirmos que o fluxo de controle do programa seja desviado para que ele não acesse as instruções assert, não haverá chance de erros de asserção.
Manipulando o AssertionError
Além da declaração de asserção, também podemos lidar com o erro de asserção usando os seguintes métodos:
Lidando com o erro de asserção usando os blocos Try-Except
A instrução assert determina se os valores são iguais. O bloco try gera o erro AssertionError porque esses números inteiros não são iguais. O comando print é executado depois que o bloco except detectou a exceção. Aqui, a saída da instrução de impressão do bloco de exceção é exibida. A palavra-chave raise pode ser usada para gerar novamente o erro no bloco except para que possamos determinar a origem da exceção. Quando ocorre uma exceção, a palavra-chave 'raise' gera um erro e encerra o programa. Ele ajuda a manter ou manter um registro/acompanhamento da exceção existente.
Como lidar com o AssertionError usando o módulo de traceback
Quando o código contém várias declarações assert, o módulo traceback ajuda a identificar a origem exata do erro.
Usando o módulo traceback, nossa instrução de impressão pode ser escrita com espaços reservados {}.
Além disso, podemos definir outras variáveis para armazenar a posição da linha, o nome do arquivo, o nome do método, bem como o texto/mensagem em que ocorreu a exceção.
O objeto de rastreamento é chamado de 'tb'. Usamos dois marcadores de posição: um para o texto e outro para a posição da linha na instrução de impressão.
Os três componentes da instrução 'raise' — exc_type, exc_traceback e exc_value — são retornados pela função sys.exc_info().
Manipulando o AssertionError usando a declaração de impressão
Para lidar manualmente com uma exceção, podemos usar a instrução 'print' dentro do bloco except.
A instrução de impressão imprime qualquer mensagem de erro inserida pelo usuário. Com esse método, um erro técnico não será uma preocupação para o usuário.
Em vez de um erro, uma breve mensagem é exibida.
Conclusão
Neste post, vimos pela primeira vez a introdução de exceções em Python. Discutimos AssertionError, como funciona e como podemos implementar AssertionError em Python. Explicamos várias vantagens do AssertionError e como podemos evitá-las. Na última seção desta postagem, vimos como podemos lidar com o AssertionError em Python usando os blocos Try-Except, o módulo traceback e a instrução print.