"未捕获[对象对象]”;投掷和接球时
"Uncaught [object Object]" when throw and catch
我有一个小JS问题,当我在$.getJSON中抛出异常时,这个异常没有被父函数捕获,并且我有JS错误。。
Chrome的控制台返回给我:
Uncaught [object Object]
(anonymous function) @ ConfLoader.class.js:24
j @ jquery.min.js:2
k.fireWith @ jquery.min.js:2
x @ jquery.min.js:4
(anonymous function) @ jquery.min.js:4
我还有很多其他的投掷和尝试/接球,我没有这个问题。。你能解释一下为什么吗?
这是我的ConfLoader"类":
var ConfLoader = {
/* Attributes */
apiToken : null,
lavaBaseURL : null,
apiURL : null,
/* Init method */
load : function(file) {
$.getJSON(file, function(data) {
if (data.apiToken)
this.apiToken = data.apiToken;
else
throw new Exception("Token API (apiToken) not found into config file.");
if (data.lavaBaseURL)
this.lavaBaseURL = data.lavaBaseURL;
else
throw new Exception("Lava URL (lavaBaseURL) not found into config file.");
if (data.apiURL)
this.apiURL = data.apiURL;
else
throw new Exception("API URL (apiURL) not found into config file.");
})
.fail(function() {
throw new Exception("File '"+file+"' not found.");
});
},
/* Methods */
getApiToken : function () {
return this.apiToken;
},
getLavaBaseURL : function () {
return this.lavaBaseURL;
},
getApiURL : function () {
return this.apiURL;
}
}
行"throw new Exception("File'"+File+"'not found。");"throw me a JS error。"。。但当我不能使用ConfLoader的方法"加载"时,我在这里发现了这个异常:
var Powers = {
/* Attributes */
confLoader : null,
/* Methods */
init : function(configFile) {
try {
this.confLoader = ConfLoader.load(configFile);
} catch (e) {
throw e;
}
},
launch : function() {
try {
} catch (e) {
}
}
}
"Exception"类是一个自定义Exception类,适用于其他抛出:
function Exception(msg, fatal) {
this.message = msg;
this.fatal = fatal;
this.isFatal = function() {
return this.fatal;
}
this.getMessage = function() {
return this.message;
}
return this;
}
谢谢!:)
$.getJSON
的fail
处理程序是异步的,这意味着在其中抛出的异常不会传播到$.getJSON
的调用方。不要抛出异常,而是尝试在fail
处理程序中处理失败。
(您还会发现您的成功处理程序也有同样的问题。)
相关文章:
- "“;变量未引用正确的对象
- 如何创建js常量对象与"依赖/相对;价值观
- "属性描述必须是对象“”;错误
- 获取"下一个“;对象中的数值
- 得到"TypeError:对象不是函数“”;在forEach循环中使用超级测试/超级代理时
- "键“;jQuery中的对象无法正常工作
- 为什么下面抛出一个“;对象没有't支持属性或方法'importNode'"在IE11中
- "未捕获[对象对象]”;投掷和接球时
- "对象不是函数“;当将Node.js HTTP服务器对象传递给Socket.IO时
- 将对象设置为Backbone.js模型,而不必调用“;set()"在每一处房产上
- 得到"未捕获的类型错误:未定义的不是函数“;当试图从对象调用get()或set()时
- 获得错误“;对象没有方法'jScrollPane'"与AngularJS一起使用时
- "类型错误:'null'不是对象(正在评估“a.nodeType')”;在phanto
- "这个“;对象函数内部的引用
- "对象没有't支持这种性质或方法“;在IE 8中.在调试中执行精细
- "Function.createDelegate"原因;错误:对象没有't支持属性或方法
- 在javascript中,使用requireJS,我如何"要求“;typescript对象
- a href="上的javascript对象对象;javascript:"呼叫
- TypeError:undefined不是一个对象(正在评估'msg.innerHTML="Uploa
- 获取对象"值“;在数组中