我有一个Ajax对象,在其他一些对象中用来加载'Json'文件。
我需要在初始化对象中捕获404'未找到'抛出异常,但我不能这样做它总是给我:
未捕获的例外情况:*********
这里有一段代码:
_ajax_params.xmlhttp.onreadystatechange = function() {
if (_ajax_params.xmlhttp.readyState==4 && _ajax_params.xmlhttp.status==200) {
_ajax_params.response = _ajax_params.xmlhttp.responseText;
if (typeof afterClosure == 'function') {
afterClosure(_ajax_params.response);
}
COMMON.always(_ajax_params.response);
} else if (_ajax_params.xmlhttp.status== 404) {
throw 'File not found';
}
};
在初始化对象中:
try {
Base.include.json(url, 1);
} catch (e) {
console.error(e);
Base.include.json(url,2);
}
我试图重新抛出异常,但我也一样。
答案 0 :(得分:0)
您可能在try..catch
块中定义了回调,但该功能在所述块之外执行(即,当事件被触发时) 。这意味着回调中发生的异常不会被外部块捕获。
Here证明了行动的不同。
请考虑使用Base.include.json(url,2)
代替throw 'File not found';
此外,除非您已经知道status
是readyState
,否则您不应该真正检查4
,但这只是一件小事。