如何在 Chrome 中捕获 DOMException?

How to catch DOMException in 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
}

抛出错误是意料之中的事,因为桌面 Chrome 不支持方向锁定。我想捕获错误,这样它就不会乱扔控制台,但将其包装在 try...catch 块中似乎不起作用。

为什么我抓不到?我错过了什么吗?

try/catch 在这里不起作用,因为 screen.orientation.lock('portrait'); 实际上是 returns 抛出错误的 Promise。这部分错误表明在promise中抛出了异常。

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

要处理异常,您可以附加一个 catch 回调。

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