Пример записи ОТК
Когда что-то разрабатываем, то нам часто необходимы собственные классы ошибок для разных вещей, которые могут пойти не так в наших задачах. Для ошибок при работе с сетью может понадобиться HttpError
, для операций с базой данных DbError
, для поиска – NotFoundError
и т.д.
Наши ошибки должны поддерживать базовые свойства, такие как message
, name
и, желательно, stack
. Но также они могут иметь свои собственные свойства. Например, объекты HttpError
могут иметь свойство statusCode
со значениями 404
, 403
или 500
.
JavaScript позволяет вызывать throw
с любыми аргументами, то есть технически наши классы ошибок не нуждаются в наследовании от Error
. Но если использовать наследование, то появляется возможность идентификации объектов ошибок посредством obj instanceof Error
. Так что лучше применять наследование.
По мере роста приложения, наши собственные ошибки образуют иерархию, например, HttpTimeoutError
может наследовать от HttpError
и так далее.