自定义JavaScript异常不会在Google Chrome's控制台显示其消息

Custom JavaScript Exceptions Won't Display Their Messages in Google Chrome's Console

本文关键字:控制台 显示 消息 Chrome 异常 JavaScript Google 自定义      更新时间:2023-09-26

我有一个问题,显示自定义JavaScript异常的消息在谷歌Chrome的控制台。我以以下方式声明和抛出异常:

var Foo = function(message) {
    Error.call(this);
    this.message = message;
    this.name = "Foo";
}
Foo.prototype = new Error();
Foo.prototype.constructor = Foo;
throw new Foo("Bar");

这在Internet Explorer和Firefox中正常工作,但在Chrome (Windows 8下的v26.0.1410.64)中,我只收到此消息:

Uncaught [object object]

我期望得到的(当我抛出Error的实例时我得到的)是这样的东西:

Uncaught Foo: Bar

我已经尝试禁用所有扩展并覆盖toString方法,但无济于事。

我还能做些什么使这些消息正确显示吗?

似乎目前它不是固定的/不正确处理的Chrome。

请参阅Chromium repo: https://code.google.com/p/chromium/issues/detail?id=228909

特别是,最后的注释:

function AssertException(message)
{
    "use strict";
    var result = new Error(message);
    result.name = "AssertException";
    return result;
}