無論我做什麼,我的代碼都不會報告任何錯誤。這是一個索引數組,當我提示用戶輸入他們想要刪除的列表號時,我得到一個錯誤。它應該給我一個錯誤,如果它不在索引或不是一個整數。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