名前空間内の各関数を、によって作成されたラッパーで簡単に置き換えることができますRaven.wrap()
。
// Do not catch global errors
Raven.config(..., {collectWindowErrors: false}).install()
// Helper to catch exceptions for namespace
function catchInNamespace(ns)
{
for (var key in ns)
{
if (ns.hasOwnProperty(key) && typeof ns[key] == "function")
ns[key] = Raven.wrap(ns[key]);
}
}
// Declaration of namespace Foo
var Foo = Foo || {};
Foo.func1 = ...;
Foo.func2 = ...;
catchInNamespace(Foo);
// Using namespace
Foo.func1(); // Any exceptions here are caught by Raven.js
他の名前空間とグローバル関数からのエラーを無視するには、構成オプションが必要であることに注意してくださいcollectWindowErrors: false
。これがないと、Raven.js はすべての例外を暗黙的にキャッチします。このオプションはRaven.js 1.1.0 で導入されましたが、何らかの理由でまだ文書化されていません。