Exercícios Resolvidos de Tratamento de Exceções

Ver Teoria

Enunciado

No código abaixo, há um problema ao tentarmos rodar o código na m a i n ( ) .

Identifique esse problema e crie uma rotina para tratá-lo.

Passo 1

Eai, tudo beleza?

Primeiramente, vamos entender esse código. Ele possui uma função chamada M e d i a H a r m o n i c a . A partir da linha 19, nós podemos ver que essa função retorna a média harmônica dos valores que ela recebe.

Dentro da função m a i n , são declarados dois valores: x = 3.5 e y =   - 3.5 . Logo em seguida é impressa uma mensagem na tela indicando que será impresso o valor da média harmônica dessas duas variáveis e é chamada a função M e d i a H a r m o n i c a que faz a conta.

Passo 2

O problema desse código é que os valores passados como argumentos da função resultam numa operação de divisão onde o denominador é nulo:

2 * a * b a + b = 2 * 3.5 * - 3.5 3.5 - 3.5 = - 24,5 0

Essa conta vai gerar um erro no nosso código. Para que isso não ocorra, podemos tratar esse erro de divisão no nosso código.

Para isso, vamos colocar um t h r o w dentro da função M e d i a H a r m o n i c a para o caso de a + b = 0 :

Com isso, quando o código encontrar a = - b , uma mensagem de erro indicando que os valores são inválidos para o cálculo vai ser enviada.

Agora precisamos escrever o restante do código que vai pegar essa mensagem de erro e exibir pro usuário.

Passo 3

Agora, dentro da nossa m a i n , vamos colocar o código para imprimir a mensagem dentro de uma rotina de t r y :

Aqui, estamos indicando pro C++ qual parte do código pode contar um erro.

Por fim, vamos acrescentar uma rotina de c a t c h para tratar a exceção enviada de forma a imprimir na tela que ocorreu um erro:

Prontinho!

Resposta