【问题标题】:How to suppress all JavaScript runtime errors?如何抑制所有 JavaScript 运行时错误?
【发布时间】:2011-10-30 12:31:27
【问题描述】:

如何从程序员方面抑制所有 JavaScript 运行时错误弹出窗口?

【问题讨论】:

  • 您可以尝试将整个代码包装到 try...catch 块中。但最好修复错误;)
  • 有时不可能使用try...catch,例如如果某些外部库抛出错误。使用 window.onerror 事件是这种情况下的解决方案,看我的回答

标签: javascript runtime-error suppress


【解决方案1】:

为了抑制所有 JavaScript 错误,似乎有一个 window.onerror 事件。
如果它被一个返回 true 的函数尽早替换(例如在头部之后) - 不会有错误弹出窗口,这在调试完成后非常有用。

<head>
<script type="text/javascript">
    window.onerror = function(message, url, lineNumber) {  
        // code to execute on an error  
        return true; // prevents browser error messages  
    };
</script> 
...

错误记录也是可能的,正如here所解释的那样

【讨论】:

  • HTMLDocumentEvents4::onerror 事件会针对运行时错误触发,但不会针对编译错误触发。此外,脚本调试器引发的错误对话框不会通过返回 true 来抑制。来自MSDN
  • 此方法似乎不适用于 Angular 2.x+ 应用程序 - 可能是由于 Angular 本身处理错误。
【解决方案2】:

我做了一个小脚本来抑制像 PHP 中的“@”这样的错误。

这是example

var at = function( test ) {
    try {
        if(typeof test === "function") return test();            
        else return test || null;        
    } catch (e) {
        return null;
    }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多