如何在Chrome中捕获DOMException?

时间:2015-07-20 05:54:10

标签: javascript google-chrome screen-orientation domexception

我收到此错误:

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块中似乎无法正常工作。

为什么我无法抓住它?我错过了什么吗?

1 个答案:

答案 0 :(得分:16)

try/catch在这里不起作用,因为screen.orientation.lock('portrait');实际上返回了Promise,这会引发错误。错误的这一部分显示了promise中抛出的异常。

  

未捕获(在承诺中)DOMException:此设备上没有lockOrientation()。

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

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