Como lidar facilmente com exceções em C++

Como Lidar Facilmente Com Excecoes Em C



Eventos inesperados que ocorrem enquanto o programa está em execução são chamados de exceções ou erros. As exceções ocorrem durante o tempo de execução e não podem ser detectadas durante a compilação, portanto podem causar sérios problemas no programa. Lidar bem com exceções em um programa C++ é o objetivo principal para um programador obter os resultados desejados.

Como lidar facilmente com exceções em C++

O tratamento de exceções em C++ refere-se ao mecanismo de detecção de erros em tempo de execução e tratamento eficiente deles, como tratamento de entradas inválidas, divisão de um número por zero em operações de divisão e muito mais.

O tratamento de exceções em C++ envolve três palavras-chave: try, throw e catch. A instrução try permite ao usuário definir o bloco de código que pode gerar uma exceção no código. A palavra-chave throw lança uma exceção se for detectada após verificar o bloco sob a palavra-chave try. A palavra-chave catch contém o bloco de código que pode tratar a exceção observada no bloco try.







Exemplo 1: Tratamento de exceções durante a divisão

O código foi escrito para verificar as exceções durante a divisão.



#include
usando espaço para nome padrão ;

interno principal ( ) {

dobro numerador, denominador, divisão ;

corte << 'Insira um valor para o numerador:' ;
comendo >> numerador ;

corte <> denominador ;

tentar {


se ( denominador == 0 )
lançar 0 ;


divisão = numerador / denominador ;
corte << numerador << '/' << denominador << '=' << divisão << fim ;
}

pegar ( interno num_exception ) {
corte << 'Erro! O divisor não pode ser  ' << num_exception << fim ;
}

retornar 0 ;
}

Neste programa, o usuário insere o valor do numerador e do denominador declarados na seção main(). No bloco try, uma instrução if é usada para verificar a exceção se o denominador é zero ou não. Como a divisão não pode ser realizada com um divisor zero se o denominador for 0, ele lançará uma exceção e o bloco catch retornará um argumento de erro, caso contrário, a operação de divisão simples será executada.







O usuário insere um numerador 42 e um 0 no denominador, o que gera uma exceção, então o programa retorna o argumento de erro.



O usuário insere um numerador 42 e 2 como denominador, como não foi encontrada nenhuma exceção, o resultado após a divisão retorna.

Exemplo 2 Tratamento de exceções para verificar a idade

Este programa verifica exceções na idade do usuário.

#include
usando espaço para nome padrão ;

/*
Aqui, queremos lançar uma exceção (idade como exceção) se a idade da pessoa for menor que 18 anos.
*/

interno principal ( )
{
// verificando se a idade é maior que 18 anos no bloco try.
tentar
{
interno idade ;
corte << 'Digite sua idade para acessar:' ;
comendo >> idade ;

se ( idade >= 18 )
{
corte << 'Acesso concedido.' ;
}
// exceção personalizada sendo lançada se a idade for menor de 18 anos.
outro
{
lançar ( idade ) ;
}
}
// capturando a exceção lançada e exibindo a saída desejada (acesso negado!)
pegar ( interno x )
{
corte << 'Acesso negado! Você é menor de idade.' << fim ;
}
retornar 0 ;
}

Neste programa, é definida uma variável com valor inteiro. O usuário é solicitado a inserir a idade e tentar verificar se a idade do usuário é maior ou igual a 18 anos. Se não for verdade, será lançada uma exceção e o bloco de exceção retornará Acesso negado! Argumento. Caso contrário, o acesso será concedido.

O usuário insere a idade de 12 anos para verificar a concessão de acesso, já que esta idade é menor de 18 anos, então o argumento Acesso negado é retornado.

O usuário insere a idade de 20 anos, pois é maior de 18 anos, então o acesso é concedido ao usuário.

Observação : Se não houver bloco catch no programa, o programa se comportará de maneira anormal e terminará inesperadamente em caso de exceções.

Conclusão

O tratamento de exceções em C++ refere-se ao mecanismo de detecção de erros em tempo de execução e tratamento eficiente deles. Envolve três palavras-chave try, throw e catch. A exceção é verificada para o código no bloco try, a palavra-chave throw lança a exceção se encontrada e o bloco catch trata a exceção lançada para o bloco try. O tratamento de exceções torna a experiência do usuário tranquila e excelente, evitando erros em tempo de execução.