我找不到在 Firefox 下捕获错误消息的方法:
window.addEventListener("error", handleException, false);
...
function handleException(e) {
alert(e);
return false;
}
...
<script>
throw new Error('sdasd');
</script>
这很好地输入了handleException
方法,但是e
参数是error event
在 firefox 下,我不知道如何获取关联的消息。例如,在 chrome 中,我得到了消息,e.message
因为在错误冒泡到没有被捕获之后,在窗口级别触发了一个自动错误(参见这个小提琴:最终错误是“未捕获”),其中包含我的原始错误手动升起。
因此,为了在 firefox 下具有相同的行为(如果您在 firefox 下运行 fiddle,您会看到消息是“未定义”),我找到了一种解决方法,包括封装一个错误引发函数来设置手动“最后一个错误”架构:
function err(I_sText) {
g_lastManualError = new Error(I_sText);
throw g_lastManualError; //this variable is global so I can get the message from anywhere
}
所以throw new Error(..)
我只打电话而不是这样做err(..)
。这有效,至少对于用户定义的异常,这是我最关心的问题。在我的处理程序handleException
中,我正在咨询全局变量。
你知道我该怎么做吗?我对这个解决方案不满意。
谢谢你,S。