Como implementar o tratamento de exceções em C ++?



Este artigo o ajudará a entender o que é tratamento de exceção e como implementar tratamento de exceção em C ++ com demonstração prática.

Exceções são condições anormais durante o tempo de execução ou tempo de compilação. é um conceito muito essencial em c ++. Este artigo apresentará a você o tratamento de exceções em C ++, juntamente com seus diferentes tipos.

As dicas a seguir serão abordadas neste artigo,





Então, vamos começar,

Tratamento de exceções em C ++

Tipos de exceções

Existem dois tipos de exceção,



Exceção de tempo de execução

É uma exceção capturada durante o tempo de execução.

Exceção de tempo de compilação



É uma exceção capturada durante o tempo de compilação.

Continuando com este artigo de manipulação de exceções em C ++,

goto instrução c ++

O que é tratamento de exceções?

Os erros interrompem a execução normal de um programa. O tratamento de exceções é muito necessário e é o processo de tratamento de erros ou exceções. Ele garante que a execução do programa não seja afetada pelas exceções e as trata lentamente, sem causar qualquer problema na execução do programa.

Quando você considera o tratamento de exceções, existem três termos associados a ele,

Tentar

O código dentro desse bloco é como um código de teste, que pode lançar uma exceção. Essa exceção é capturada dentro do bloco catch.

Pegar

O código neste bloco é executado quando o código nos blocos try lança uma exceção.

Lançar

Esta palavra-chave é usada para lançar uma exceção quando encontrada. A exceção é enviada para o manipulador de exceções.

Sintaxe:

O código dentro do bloco try é executado. Se houver um erro gerado, a palavra-chave throw lança a exceção para o manipulador de exceções, ou seja, o bloco catch. O bloco catch então executou o código, que está dentro de seu bloco, tratando assim a exceção.

Vamos dar uma olhada no código de amostra para tratamento de exceções em c ++

Código de amostra

#include using namespace std try {// code for try throw & ldquoexception & rdquo} catch (exception) {// code for catch} int main () {int x = 1 try {cout<< 'Try Block: '<

Resultado:

Saída - Tratamento de exceções em C ++ - Edureka

Explicação

Este programa demonstra o tratamento de exceções. Temos uma variável x, à qual é atribuído o valor 1. Então, temos o início do bloco try. Neste bloco, temos uma instrução if com a condição x<10.

Em nosso caso, a condição é verdadeira porque x é um. O programa então lança uma exceção e o controle muda para capturar o bloco. Executamos a condição na parte catch e saímos do bloco.

catch (...) {cost<< 'Default Exceptionn'<

Por último, executamos as instruções restantes após o bloco catch e o programa de saída.

Pode haver várias instruções catch, dependendo do número de exceções possíveis.

Continuando com este artigo de manipulação de exceções em C ++,

Falha do bloco de captura

Considere o programa anterior, se em vez de x a palavra-chave throw lançar “ABC”, a função catch não será capaz de lidar com isso. Vai mostrar um erro,

Podemos fazer com que nossa mensagem de erro de ganho seja exibida nesse caso.

Para resolver isso, precisamos adicionar uma função catch padrão ao código para lidar com esses problemas.

#include usando namespace std int main () {int x = 1 try {cout<< 'Try Block: '<

Saída:

Explicação:

Este código é semelhante ao anterior. A única mudança é que a exceção lançada é do tipo char. Isso faz com que nossa função catch seja inútil. Portanto, incluímos uma função catch padrão.

Se nenhuma das instruções catch corresponder, o catch padrão será executado.

Vários blocos de captura

Pode haver vários blocos catch de um único bloco try.

Aqui está um exemplo,

#include usando namespace std int test (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<

Resultado:

Explicação:

No código acima, usamos várias instruções catch. Temos um teste de função que gera uma exceção. No primeiro caso de teste, o valor é 10. Uma vez que 10 é maior que zero, 'a' o caractere é lançado e é capturado pela segunda função catch.

como imprimir array em php

No segundo caso, o valor é menor que 0, então o valor -1 é lançado e é capturado pela exceção de inteiro

Tratamento de exceções na classe base e derivada:

Se as exceções da classe base e derivada forem capturadas, a captura da classe derivada deve ser executada antes da classe base.

Aqui estão algumas exceções:

  • std :: exception

  • erro_lógico

  • runtime_error

  • bad_alloc

  • bad_cast

  • bad_exception

Com isso, chegamos ao final deste blog sobre ‘Manipulação de exceções em C ++’. Espero que você tenha achado isso informativo e útil, fique ligado para mais tutoriais sobre tópicos semelhantes. Você também pode verificar nosso programa de treinamento tpara obter conhecimento aprofundado sobre jQuery, juntamente com seus vários aplicativos, você pode para treinamento online ao vivo com suporte 24 horas nos sete dias da semana e acesso vitalício.

Tem alguma questão para nós? Mencione-os na seção de comentários deste blog e entraremos em contato com você.