次のコードでは意図的にエラーをスローしますが、Chromeではテスト目的でのみ使用されますが、catchにはロールアップされません。親のスコープにエラーをロールアップするにはどうすればよいですか?JavaScriptエラーをロールバックするにはどうすればよいですか?
try {
setTimeout(function() {
console.log("Throwing Error...");
throw({message:"Ouch!"});
}, 500);
} catch(e) {
console.log(e.message);
}
Chromeがで応答:ここ
Uncaught #<Object>
(anonymous function)
は、私が働いている完全な例です。私が "ボブ"を必要とするとき、それは(意図的に)タイムアウトします。私はrequirejsエラーをキャッチしたいので、より堅牢な私のアプリケーションのエラーシステムを使用して、学習者に通知することができます。ブラウザがsetTimeout
コールバックを呼び出したときにあなたのthrow
(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);
}
})();
タイトル/説明にtry-catchとsetTimeoutを使用することをお勧めします。そうすれば、他の人が類似したものを探しているときに、彼らはあなたの質問と利益を見つけるかもしれません。 – pilavdzice