简体   繁体   English

Java语言尝试并抓住

[英]Javascript try and catch

My code is not reporting any errors no matter what I do. 无论我做什么,我的代码都不会报告任何错误。 This is for a indexed array and I was to get an error when I prompt user to enter the list number they want to delete. 这是针对索引数组的,当提示用户输入要删除的列表号时,我得到了一个错误。 It should give me an error if its not in the index or not a integer. 如果它不在索引中或不是整数,应该给我一个错误。

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);
    }



}

simple, add the below code to beginning of try block if((input -parseInt(input ))!=0) throw new Error('not integer'); 很简单,将下面的代码添加到try块的开始if((input -parseInt(input ))!=0) throw new Error('not integer');

it should do the trick. 它应该可以解决问题。

I changed your function, please see if it is what you want: 我更改了您的功能,请查看它是否是您想要的:

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