Как отловить DOMException в Chrome?

Я получаю эту ошибку:

Uncaught (in promise) DOMException: lockOrientation() is not available on this device.
  code: 9
  message: "lockOrientation() is not available on this device."
  name: "NotSupportedError"

когда я запускаю следующий код в Chrome:

try {
  screen.orientation.lock('portrait');
} catch (error) {
  // whatever
}

Ожидается, что выдается ошибка, поскольку Desktop Chrome не поддерживает блокировку ориентации. Я хотел бы поймать ошибку, чтобы она не засоряла консоль, а завернула ее в try...catch блок не работает

Почему я не могу поймать это? Я что-то пропустил?

1 ответ

Решение

try/catch здесь не работает, потому что screen.orientation.lock('portrait'); фактически возвращает Обещание, которое выдает ошибку. Эта часть ошибки показывает, что исключение выдается в обещании.

Uncaught (в обещании) DOMException: lockOrientation() не доступна на этом устройстве.

Чтобы обработать исключение, вы можете прикрепить catch Перезвоните.

screen.orientation.lock('portrait').catch(function(error) {
    // whatever
});
Другие вопросы по тегам