Выбрасывание своих типов исключений в 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

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