mik*_*ike 2 javascript error-handling dojo
我有一些代码让我感到困惑.我在网上搜索过,我找不到这样的东西,虽然我不认为我是第一个=)我正在使用dojo,我不知道这是否与问题有关我我有.问题是Firebug不会抛出我想抛出的错误.但是,在Safari中调试时,会抛出错误??? 我总是做这种事情,由于某种原因,它在这里不起作用.
这是代码示例:
var formSubmit = function(e) {
e.preventDefault();
var f = testForm.domNode,
map = {};
for(var i = 0; i < f.elements.length; i++){
var elem = f.elements[i];
map[elem.id] = elem.value;
}
if (!map.id && !map.field1) {
***// -- this error will not be thrown --***
throw new Error("you must supply some data");
}
}
testForm = new Form({
encType: "multipart/form-data",
method: "post",
onSubmit: formSubmit
}, "testForm");
Run Code Online (Sandbox Code Playgroud)
任何人都有任何想法,为什么这在Firebug中不起作用?
可能会引发错误,但是从事件处理程序调用抛出错误的函数,因此错误最终会在系统事件处理代码中被捕获(在代码中没有捕获)或者只是被忽略.
当你说"它没有被抛出"时,你期待看到什么?你有一个try/catch你期望抓住异常的地方吗?抛出异常没有任何自己的通用UI.它会引发异常,然后由一些更高级别的代码来捕获异常并对其执行某些操作.如果该事件循环中没有更高级别的代码来捕获异常,那么它只是中止该事件处理程序的执行.
| 归档时间: |
|
| 查看次数: |
2214 次 |
| 最近记录: |