如何确定抛出的异常?

时间:2016-10-19 02:29:17

标签: javascript firefox exception exception-handling

我处理的脚本以我无法预测的方式添加到数百个不同的网站,特别是在iframe中加载代码时。在我的代码中,我有一个try / catch块设置来处理异常。它是这样的:

var vals = {};

try {
    vals.hostname = window.top.location.hostname; // will throw DOMException if loaded in iframe
    < more code which might throw other exceptions >
} catch (e) {
    if (e instanceof DOMException) {
        vals.hostname = window.location.hostname;
    } else {
        <do something different>
    }
}

e instanceof DOMException在Chrome上运行真棒,但事实证明,在Firefox和Safari上,e instanceof DOMException在这些浏览器上为false。我已经做了很多搜索,但由于某种原因,似乎无法找到任何解释如何以浏览器无关的方式检查异常类型的人。

编辑:好的,Chrome正在抛出DOMException,但Firefox(可能是Safari)只是抛出一个通用的&#34;错误&#34;:

Error: Permission denied to access property "hostname"

我认为这意味着我无法对其他浏览器上的特定错误做任何事情。

0 个答案:

没有答案