Ошибки случаются, и нужно уметь с ними работать. Ваши коллеги разработали форму, которая принимает от пользователя количество покупаемых единиц товара. Вас попросили написать функцию-преобразователь, которая:
- возвращает число, если всё корректно;
- генерирует ошибку, если ввод не является числом в десятичной системе счисления.
Используйте возможности стандартной библиотеки JS для преобразования строки в число.
-
Напишите функцию
parseCount
.- Аргументом функции является значение, которое необходимо распарсить.
- Для парсинга используйте функцию
Number.parseFloat
. - Если результат парсинга — значение
NaN
, то выбрасывайте исключение с ошибкой «Невалидное значение». - Верните результат парсинга из функции.
-
Напишите функцию
validateCount
.- Аргументом функции является значение, которое необходимо распарсить.
- Попробуйте распарсить значение с помощью функции
parseCount
. - Если распарсить удаётся успешно, то возвращайте результат.
- Перехватывайте исключение, которое может выбрасывать функция
parseCount
. - Возвращайте ошибку из функции в случае перехвата исключения.
На этот раз Вася решил создать онлайн-калькулятор геометрических фигур. Помогите ему создать калькулятор треугольников, который сможет проверять существование треугольника, считать площадь и периметр.
- Напишите класс
Triangle
.- Конструктор класса должен принимать три стороны треугольника.
- В случае нарушения правила существования треугольника (сумма двух сторон меньше третьей) выбрасывайте исключение с ошибкой «Треугольник с такими сторонами не существует».
- Геттер
perimeter
должен возвращать периметр треугольника. - Геттер
area
должен возвращать площадь треугольника. Для подсчёта площади используйте формулу Герона. Точность должна вычисляться с обозначением до трёх знаков после запятой.
- Напишите функцию
getTriangle
.- Аргументами функции являются три значения длин сторон.
- Попытайтесь вернуть новый объект треугольника.
- В случае перехвата исключения возвращайте объект с двумя геттерами
area
иperimeter
, которые возвращают строку: «Ошибка! Треугольник не существует».
- Все тесты успешно выполняются.
- Соблюдается кодстайл.
- Решение загружено в форкнутый репозиторий GitHub.
- Решение опубликовано в GitHub Pages.
- Откройте файл
task.js
в вашем редакторе кода и выполните задание. - Проверьте соблюдение кодстайла. Форматируйте ваш код через форматтер https://codebeautify.org/jsviewer.
- Добавьте файл
task.js
в индексgit
с помощью командыgit add %file-path%
, где%file-path%
— путь до целевого файлаgit add ./6.exception-closure/task.js
. - Сделайте коммит, используя команду
git commit -m '%comment%'
, где%comment%
— это произвольный комментарий к вашему коммитуgit commit -m 'Шестое задание полностью готово'
. - Опубликуйте код в репозиторий
homeworks
с помощью командыgit push -u origin main
. - На проверку пришлите 2 ссылки. На файл с решением (
task.js
) и на страницу GitHub Pages — страницу с автотестами:https://%USERNAME%.github.io/bjs-2-homeworks/6.exception-closure
.
Никакие файлы прикреплять не нужно.
Все задачи обязательны к выполнению для получения зачёта. Можете прислать на проверку как каждую задачу по отдельности, так и все задачи вместе. Во время проверки по частям у вашей домашней работы будет статус «На доработке».
Любые вопросы по решению задач задавайте в чате учебной группы.