无论我做什么,我的代码都不会报告任何错误。这是一个索引数组,当我提示用户输入他们想要删除的列表号时,我得到一个错误。它应该给我一个错误,如果它不在索引或不是一个整数。Javascript try and catch
function deleteTask(){
'use strict';
//Prompt user
var input = prompt("what task do you want to delete?");
var delMessage = ' ';
try {
//Convert to integer
var delTask = parseInt(input);
//Validates that user input was number and is range of to do list
if ((typeof delTask == 'number') && (delTask <= tasks.length)){
if (delTask > 1){
//removes element from array
var oneDown = parseInt(delTask - 1);
tasks.splice(oneDown, 1);
}else{
tasks.splice(0,1);
}
delMessage = '<h2>To-Do</h2><ol>';
for (var i = 0, count = tasks.length; i < count; i++) {
delMessage += '<li>' + tasks[i] + '</li>';
}
delMessage += '</ol>';
output.innerHTML = delMessage;
}
//Return false to prevent submission:
return false;
}catch(ex){
console.log(ex.message);
}
}
我必须抛出错误?它不应该自行旅行?根据我的理解,我认为如果在任何try代码中存在逻辑错误或某种情况,它会将错误发送给catch。我错了吗? – EsotericRider 2014-10-31 02:38:44
不要以为JS会捕获逻辑错误... – mido 2014-10-31 02:48:58
好吧我想通了,谢谢! – EsotericRider 2014-10-31 02:49:09