Menu
Coddy logo textTech

Recapitulação - Divisão Segura

Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 43 de 65.

challenge icon

Desafio

Fácil

Crie 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.

  1. Leia uma entrada de string representando o primeiro número (dividendo)
  2. Leia uma entrada de string representando o segundo número (divisor)
  3. Crie uma função chamada safeDivision que recebe dois parâmetros double e retorna um resultado double
  4. A função deve usar um bloco try-catch para 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 retorne 0.0 como um valor padrão seguro
  5. Converta as strings de entrada para valores double usando double.parse()
  6. Chame a função safeDivision com os valores convertidos
  7. 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 successfully

Se 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 handling

Se 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 successfully

Seu 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