簡體   English   中英

Java語言嘗試並抓住

[英]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塊的開始if((input -parseInt(input ))!=0) throw new Error('not integer');

它應該可以解決問題。

我更改了您的功能,請查看它是否是您想要的:

var tasks = [1,2,3,4,5,6,7,8,9,10];

function deleteTask(){
    'use strict';
    //Prompt user
    var input = prompt("what task do you want to delete?");
    var delMessage = ' ';

    //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 if (delTask == 0){
            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>';
        document.getElementById('output').innerHTML = delMessage; 
    } else {
        throw "The value is not number or not index of array! Try again!";
    }
    //Return false to prevent submission:
    return false;
}

try {
    deleteTask();
} catch (e) {
    console.log(e);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM