次のコードでは、意図的にエラーをスローしていますが、Chrome(単にテスト目的で使用)では、キャッチにロールアップしません。エラーを親のスコープにロールアップするにはどうすればよいですか?
try {
setTimeout(function() {
console.log("Throwing Error...");
throw({message:"Ouch!"});
}, 500);
} catch(e) {
console.log(e.message);
}
Chromeの返信:
Uncaught #<Object>
(anonymous function)
これが私が取り組んでいる完全な例です。「ボブ」が必要な場合、(意図的に)タイムアウトします。より堅牢なアプリケーションのエラーシステムを使用して学習者に通知できるように、requirejsエラーをキャッチしたいと思います。
(function() {
try {
var scriptVersion = "1.0.0.1"
window.onload = function() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "//content.com/pkg/" + scriptVersion + "/require-jquery.js";
script.async = false;
script.done = false;
// OnReadyStateChange for older IE browsers
script.onload = script.onreadystatechange = function() {
if(!(this.done) && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
this.done = true;
require.config({
baseUrl: "//content.com/pkg/" + scriptVersion
});
require(["bob"]);
}
}
document.getElementsByTagName("head")[0].appendChild(script);
}
} catch(e) {
console.log(e);
}
})();