JavaScript | Как выбросить исключение?

Мы хотим сделать функцию, которая будет оповещать пользователя о неправильно переданных данных. То есть пользователь не будет получать из функции никаких данных, вообще.

Пускай у нас будет простая функция, которая складывает два числа вместе и возвращает результат сложения.

function sumAB(a, b){
   return a + b
}

Как нам сделать так, чтобы функция выдавала ошибку, если передан только один параметр? Предположим пользователь забыл передать второй параметр, а мы хотим ему об этом напомнить.

В решении вопроса нам поможет конструктор ошибок Error(). В него мы будем передавать строку — «Вы забыли передать число»


Добавим языковую конструкцию if else в тело нашей функции

function sumAB(a, b){
   if(a == undefined || b == undefined){return new Error("Вы забыли передать число")}
   else{return a + b}
}

Проверяем работу на 3 вызовах:

sumAB()
sumAB(4)
sumAB(4,8)

Вывод в консоль браузера

Вывели сообщение об ошибке - JavaScript
Вывели сообщение об ошибке — JavaScript

Первые два вызова функции сообщили в консоль браузера об ошибке и выдали «подсказку».

Третий вызов прошёл без ошибок т. к. были переданы два параметра.

 

Итог

Эту функцию можно сделать ещё более отзывчивой и научить её проверять тип данных передаваемых параметров. Например можно научить преобразовывать строки в числа и производить суммирование (если это не конкатенация).

 

Информационные ссылки

Стандарт ECMAScript — Раздел «20.5 Error Objects» — https://tc39.es/ecma262/#sec-error-objects

Поделись записью