Выкідванне сваіх тыпаў выключэнняў у JavaScript

Колькасць убудаваных у JavaScript выключэнняў не такое вялікае і яны часцей за ўсё не могуць задаволіць усе нашы патрэбы ў розных тыпах выключэнняў. Таму ў JavaScript убудаваная магчымасць ствараць выключэнні са сваім тыпам.

Існуюць розныя спосабы зрабіць гэта. Самы просты - у throw перадаць аб'ект з ключамі name і message:

javascripttry {
  throw {name: 'MyError', message: 'тэкст выключэння'};
} catch (error) {
  console.log(error.name); // 'MyError'
  console.log(error.message); // 'тэкст выключэння'
}
Задание 1

Раней мы зрабілі функцыю, якая выкідвае выключэнне пры дзяленні на нуль:

javascriptfunction div(a, b) {
  if (b !== 0) {
    return a / b;
  } else {
    throw new Error('памылка дзялення на нуль');
  }
}

Перарабіце гэтую функцыю так, каб яна выкідвала выключэнне з якім-небудзь прыдуманымі намі тыпам, напрыклад, DivisionByZeroError.

Задание 2

Раней вы рабілі функцыю, якая выкідвае выключэнне пры спробе здабыць корань з адмоўнага ліку. Перарабіце вашу функцыю так, каб яна выкідвала выключэнне з прыдуманым вамі тыпам. Добра падумайце над назвай выключэння, каб гэтая назва была ўдалай.