Recapitulação - Divisão Segura
Parte da seção Lógica & Fluxo do Journey de C++ da Coddy — lição 53 de 56.
Desafio
FácilCrie um programa que implemente a divisão segura usando o tratamento abrangente de exceções. Este desafio testará sua habilidade de combinar o design de funções com o gerenciamento de exceções para lidar com erros de divisão por zero de forma graciosa.
As seguintes entradas serão fornecidas:
- Um double
numeratorrepresentando o número a ser dividido - Um double
denominatorrepresentando o número pelo qual dividir
Seu programa deve:
- Criar uma função chamada
safeDivideque recebe dois parâmetros double (numerador e denominador) - Dentro da função, verificar se o denominador é igual a zero
- Se o denominador for zero, use
throwpara lançar a string"Division by zero error" - Se o denominador não for zero, calcule o resultado da divisão e retorne-o como um double
- Na função principal, chame
safeDividedentro de um blocotrycom os valores de entrada - Use um bloco
catchpara tratar a exceção de string lançada - Imprima a mensagem apropriada com base no sucesso ou falha da divisão
Use o seguinte formato de saída exato:
Para divisão bem-sucedida:
Result: [division_result]Para erro de divisão por zero:
Error: Division by zero errorLembre-se de que quando o denominador for zero, sua função deve imediatamente usar throw para lançar uma exceção antes de tentar a divisão. O bloco catch deve especificar o tipo const char* para tratar a string literal lançada. Quando uma exceção é lançada, o programa saltará diretamente da instrução throw para o bloco catch correspondente, evitando que qualquer divisão por zero ocorra e permitindo que seu programa trate o erro graciosamente em vez de travar.
Experimente você mesmo
#include <iostream>
using namespace std;
int main() {
// Ler entrada
double numerator, denominator;
cin >> numerator >> denominator;
// TODO: Escreva seu código aqui
// Crie a função safeDivide acima de main()
// Use o bloco try-catch para lidar com exceções
return 0;
}Todas as lições de Lógica & Fluxo
1Ponteiros e Memória
O que é um Ponteiro?Operador de EndereçoOperador de DesreferenciaçãoPonteiros NulosPonteiros e ArraysMemória Dinâmica com 'new'Liberando Memória com 'delete'Recapitulação - Prática com Ponteiros2Vetores (Arrays Dinâmicos)
Introdução ao std::vectorCriando um VetorAdicionando ElementosAcessando ElementosTamanho do VetorIterando com um Loop ForLoop For Baseado em IntervaloRemovendo ElementosRecapitulação - Operações com Vetores5Projeto: Ferramenta de Inventário
Configuração do ProjetoAdicionando e Atualizando Itens8Tratamento Básico de Erros
Introdução a ExceçõesOs Blocos 'try' e 'catch'A Palavra-chave 'throw'Diferentes Tipos de ExceçãoO Manipulador Catch-AllRecapitulação - Divisão Segura3Projeto: Ferramenta de Lista de Tarefas
Visão Geral do ProjetoAdicionando uma Tarefa