Recapitulação - Divisão Segura
Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 43 de 65.
Desafio
FácilCrie um programa que implemente uma calculadora de divisão segura usando tratamento de exceções. Seu programa deve lidar com erros de divisão por zero de forma graciosa e fornecer feedback claro aos usuários quando ocorrerem erros.
- Leia uma entrada de string representando o primeiro número (dividendo)
- Leia uma entrada de string representando o segundo número (divisor)
- Crie uma função chamada
safeDivisionque recebe dois parâmetros double e retorna um resultado double - A função deve usar um bloco
try-catchpara lidar com potenciais erros de divisão: - No bloco
try: Verifique se o divisor é zero e lance uma exceção com a mensagem"Division by zero is not allowed"se for verdade, caso contrário, realize a divisão - No bloco
catch: Trate a exceção e retorne0.0como um valor padrão seguro - Converta as strings de entrada para valores double usando
double.parse() - Chame a função
safeDivisioncom os valores convertidos - Exiba os resultados no formato exato mostrado abaixo
Por exemplo, se as entradas forem "10.0" e "2.0", seu programa deve exibir:
Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfullySe as entradas forem "15.0" e "0.0", seu programa deve exibir:
Safe Division Calculator
========================
First number: 15.0
Second number: 0.0
Performing division...
Error: Division by zero is not allowed
Using safe default value: 0.0
Operation completed with error handlingSe as entradas forem "7.5" e "2.5", seu programa deve exibir:
Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfullySeu programa deve implementar a função safeDivision que usa um bloco try-catch para lidar com a divisão por zero. No bloco try, verifique se o divisor é igual a 0.0 e use a palavra-chave throw para disparar manualmente uma exceção se for verdade. No bloco catch, imprima a mensagem de erro e retorne 0.0 como um valor de fallback seguro. O programa principal deve chamar esta função e exibir diferentes mensagens de conclusão com base no fato de ter ocorrido um erro ou não.
Experimente você mesmo
import 'dart:io';
// TODO: Crie a função safeDivision aqui
void main() {
// Ler entrada
String? firstInput = stdin.readLineSync();
String? secondInput = stdin.readLineSync();
// Converter strings para double
double firstNumber = double.parse(firstInput!);
double secondNumber = double.parse(secondInput!);
// Exibir cabeçalho
print("Safe Division Calculator");
print("========================");
print("First number: $firstNumber");
print("Second number: $secondNumber");
print("Performing division...");
// TODO: Chamar a função safeDivision e tratar o resultado
// Lembre-se de verificar se ocorreu um erro para exibir a mensagem de conclusão apropriada
}Todas as lições de Lógica & Fluxo
1Manipulação Avançada de Listas
Propriedades de Lista: first & lastEstado da Lista: isEmpty & isNotEmptyInvertendo uma ListaAdicionando a uma Lista: insertRemoção em Listas: removeWhereBuscando em uma Lista: indexOfOrdenando uma ListaEmbaralhando uma ListaRecapitulação - Organizador de Listas4Manipulação Avançada de Mapas
Iterando sobre um MapVerificando Chaves e ValoresPropriedades do Map: keys & valuesAdição Condicional: putIfAbsentRemovendo Entradas de um MapMaps AninhadosRecapitulação - Atualização de Inventário2Operações Funcionais em Listas
Transformando com 'map'Filtrando com 'where'Usando '.toList()'Verificando Condições com 'any'Condições com 'every'Encontrando com 'firstWhere'Recapitulação - Filtragem de Dados5Projeto: Cálculo de Carrinho de Compras
Configuração do ProjetoAdicionando Itens ao Carrinho3Conjuntos
O que é um Conjunto?Criando um ConjuntoAdicionando e Removendo de ConjuntosVerificando Elementos em um ConjuntoConvertendo uma Lista para um ConjuntoUnião de ConjuntosInterseção de ConjuntosDiferença de ConjuntosRecapitulação - Lista de Convidados Únicos6Tratamento de Erros Básico
O que são Exceções?O Bloco 'try-catch'Capturando Exceções com 'on'O Bloco 'finally'Lançando uma ExceçãoRecapitulação - Divisão Segura