Итоги: Безопасное деление
Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 43 из 65.
Задание
ЛегкоСоздайте программу, реализующую калькулятор безопасного деления с использованием обработки исключений. Ваша программа должна корректно обрабатывать ошибки деления на ноль и предоставлять пользователям четкую обратную связь при возникновении ошибок.
- Прочитайте строковый ввод, представляющий первое число (делимое)
- Прочитайте строковый ввод, представляющий второе число (делитель)
- Создайте функцию с именем
safeDivision, которая принимает два параметра типа double и возвращает результат типа double - Функция должна использовать блок
try-catchдля обработки потенциальных ошибок деления: - В блоке
try: Проверьте, равен ли делитель нулю, и выбросьте исключение с сообщением"Division by zero is not allowed", если это так, в противном случае выполните деление - В блоке
catch: Обработайте исключение и верните0.0в качестве безопасного значения по умолчанию - Преобразуйте входные строки в значения double с помощью
double.parse() - Вызовите функцию
safeDivisionс преобразованными значениями - Выведите результаты в точном формате, показанном ниже
Например, если входные данные — "10.0" и "2.0", ваша программа должна вывести:
Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfullyЕсли входные данные — "15.0" и "0.0", ваша программа должна вывести:
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Если входные данные — "7.5" и "2.5", ваша программа должна вывести:
Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfullyВаша программа должна реализовывать функцию safeDivision, которая использует блок try-catch для обработки деления на ноль. В блоке try проверьте, равен ли делитель 0.0, и используйте ключевое слово throw, чтобы вручную вызвать исключение, если это так. В блоке catch выведите сообщение об ошибке и верните 0.0 в качестве безопасного резервного значения. Основная программа должна вызывать эту функцию и отображать различные сообщения о завершении в зависимости от того, произошла ли ошибка.
Попробуйте сами
import 'dart:io';
// TODO: Создайте здесь функцию safeDivision
void main() {
// Чтение ввода
String? firstInput = stdin.readLineSync();
String? secondInput = stdin.readLineSync();
// Преобразование строк в double
double firstNumber = double.parse(firstInput!);
double secondNumber = double.parse(secondInput!);
// Отображение заголовка
print("Safe Division Calculator");
print("========================");
print("First number: $firstNumber");
print("Second number: $secondNumber");
print("Performing division...");
// TODO: Вызовите функцию safeDivision и обработайте результат
// Не забудьте проверить, не возникла ли ошибка, чтобы вывести соответствующее сообщение о завершении
}Все уроки раздела Логика и управление потоком
1Продвинутая работа со списками
Свойства списка: first и lastСостояние списка: isEmpty и isNotEmptyРазворот спискаДобавление в список: insertУдаление из списка: removeWhereПоиск в списке: indexOfСортировка спискаПеремешивание спискаИтоги — Органайзер списков4Продвинутая работа с Map
Итерация по MapПроверка ключей и значенийСвойства Map: keys и valuesУсловное добавление: putIfAbsentУдаление записей из MapВложенные MapИтоги — Обновление инвентаря2Функциональные операции со списками
Преобразование с помощью 'map'Фильтрация с помощью 'where'Использование '.toList()'Проверка условий с помощью 'any'Условия с 'every'Поиск с помощью 'firstWhere'Повторение — фильтрация данных5Проект: Калькулятор корзины
Настройка проектаДобавление товаров в корзину3Множества
Что такое множество?Создание множестваДобавление и удаление элементовПроверка наличия элементов в множествеПреобразование списка в множествоОбъединение множествПересечение множествРазность множествИтоги: уникальный список гостей6Основы обработки ошибок
Что такое исключения?Блок 'try-catch'Перехват исключений с помощью 'on'Блок 'finally'Генерация исключенияИтоги: Безопасное деление