現在、私はモジュールビルダーを持っています。この要約版のスクリプトでは、ボディ クリックが発生foo()
し、エラーがスローされます。モジュールオブジェクト全体にエラーハンドラーをアタッチして、作成中だけでなく実行時にもスローされたものをキャッチしたいと考えています。出来ますか?
現在、「foo アラート」がコンソールに表示されます。私はそれを抑制し、中央のロガーに必要なログをさせたいと思います。この場合、代わりに「logged」を表示したい。
$(function() {
var moduleCollection = {};
//creates modules, stores them and returns for reference
function define(name, def) {
var newModule = def(); //creates the module object
moduleCollection[name] = newModule; //store
//somewhere here, i must attach some sort of
//error handlers for the module
//something like:
newModule.onerror = function(){
//execute error procedure (like logging)
console.log('logged');
}
return newModule //return as reference
}
//a module definition
var mymod = define('mymod', function() {
//foo chokes unintentionally and results into an error
function foo() {throw new Error('foo alert');}
function start() {
//a body click calls foo
$('body').on('click', function() {foo()});
}
return {start: start}
});
//start module
mymod.start()
});