Как отловить 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
});