Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to catch DOMException in Chrome?

I get this error:

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

when I run the following code in Chrome:

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

The fact that the error is being thrown is expected, since Desktop Chrome doesn't support orientation locking. I'd like to catch the error so it doesn't litter the console, but wrapping it in a try...catch block doesn't seem to work.

Why can't I catch it? Am I missing something?

like image 733
Jack Senechal Avatar asked Jul 20 '15 05:07

Jack Senechal


1 Answers

try/catch does not work here, because screen.orientation.lock('portrait'); actually returns a Promise which is throwing the error. This part of the error shows the exception is thrown in the promise.

Uncaught (in promise) DOMException: lockOrientation() is not available on this device.

To handle the exception, you can attach a catch callback.

screen.orientation.lock('portrait').catch(function(error) {
    // whatever
});
like image 114
Alexander O'Mara Avatar answered Oct 18 '22 08:10

Alexander O'Mara