Сегодня, играя с 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 #, и очень полезна для обработки ошибок.