Сегодня, играя с ORM Sequelize, я увидел, что могу получить уникальное имя из ошибок, возникающих при его операциях.

Один из них назывался SequelizeUniqueConstraintError.

Раньше я не знал, что это возможно, поэтому, ища в Интернете и наткнувшись на этот ответ stackoverflow, я узнал кое-что новое об ошибках JavaScript, которыми я поделюсь с вами.

Что я выучил

В JavaScript прототип класса Error имеет переменную name, для которой по умолчанию установлено значение Error.

Вы можете делать собственные ошибки, что становится полезным, когда вы хотите знать, какого типа выброшенная ошибка.

function NotImplementedError(message) {
   this.name = ‘NotImplementedError’
   this.message = message || ‘’
}

Затем установите его прототип на Error.

NotImplementedError.prototype = Error.prototype

Сделайте то, что подбрасывает наш новый NotImplementedError

try{
   // throw error
   throw new NotImplementedError()
}
catch (err) {
   if (err.name === ‘NotImplementedError’) {
      // this error was thrown because a function was executed that hasn’t been implemented
   }
   else {
      // this error was thrown for some other reason
   }
}

Дифференциация ошибок / исключений - это функция, которая часто используется в типизированных языках, таких как C #, и очень полезна для обработки ошибок.