最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

error handling - If I override window.onerror in javascript should I return true or false? - Stack Overflow

programmeradmin1浏览0评论

I want to log JavaScript errors so I'm overriding window.onerror like this:

window.onerror = function(message, file, lineNumber) {
    var browser_ = encodeURI(navigator.appVersion);
    var error_ = encodeURI("msg:"+ message + "\n\tfile:"+file+"\n\tln:"+lineNumber);
    var user_ = encodeURI("");

    ...

    return false;
}

I've seen some people return true and some return false. Which is right and why? One post mentioned something about have you have to return true or Firefox will handle the error it's own way. What??

I want to log JavaScript errors so I'm overriding window.onerror like this:

window.onerror = function(message, file, lineNumber) {
    var browser_ = encodeURI(navigator.appVersion);
    var error_ = encodeURI("msg:"+ message + "\n\tfile:"+file+"\n\tln:"+lineNumber);
    var user_ = encodeURI("");

    ...

    return false;
}

I've seen some people return true and some return false. Which is right and why? One post mentioned something about have you have to return true or Firefox will handle the error it's own way. What??

Share Improve this question edited Nov 10, 2011 at 23:25 c69 21.5k8 gold badges55 silver badges83 bronze badges asked Nov 10, 2011 at 22:27 toosheltooshel 1,5643 gold badges19 silver badges27 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 32

From MDN on window.onerror:

When the function returns true, this prevents the firing of the default event handler.

See also chromium Issue 92062:

In Chrome, returning true from window.onerror allows the error to propagate, and returning false suppresses it.

This is the inverse of the behavior in Firefox and IE, where returning 'true' suppresses the error, but returning false propagates it.

Note: the issue mentioned above was fixed, behavior is now as mentioned on MDN for all browsers.

发布评论

评论列表(0)

  1. 暂无评论