首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证要嵌套的数据是否在“尝试和捕获”中嵌套

验证要嵌套的数据是否在“尝试和捕获”中嵌套
EN

Software Engineering用户
提问于 2013-10-29 11:37:58
回答 1查看 155关注 0票数 2

我正在验证数据,在这种情况下,我想要三个ints中的一个。我问这个问题,因为这是我感兴趣的基本原则。这是一个基本的例子,但我现在正在开发最佳实践,因此,当事情变得更复杂以后,我有更好的条件来管理它们。

是否最好先试一试,接上以下条件:

代码语言:javascript
复制
public static int getProcType()
{
    try
    {
        procType = getIntInput("Enter procedure type -\n"
            + " 1 for Exploratory,\n" 
            + " 2 for Reconstructive, \n"
            + "3 for Follow up: \n");
    }
    catch (NumberFormatException ex)
    {
        System.out.println("Error! Enter a valid option!");
        getProcType();
    }
    if (procType == 1 || procType == 2 || procType == 3)
    {
        hrlyRate = hrlyRate(procType);
        procedure = procedure(procType);
    }
    else
    {
        System.out.println("Error! Enter a valid option!");
        getProcType();
    }

    return procType;
}

还是把if放在尝试和捕捉的范围内更好?

代码语言:javascript
复制
public static int getProcType()
{
    try
    {
        procType = getIntInput("Enter procedure type -\n"
            + " 1 for Exploratory,\n" 
            + " 2 for Reconstructive, \n"
            + "3 for Follow up: \n");

        if (procType == 1 || procType == 2 || procType == 3)
        {
            hrlyRate = hrlyRate(procType);
            procedure = procedure(procType);
        }
        else
        {
            System.out.println("Error! Enter a valid option!");
            getProcType();
        }
    }
    catch (NumberFormatException ex)
    {
        System.out.println("Error! Enter a valid option!");
        getProcType();
    }

    return procType;
}

我在想如果在尝试,可能会更快,但也可能是笨拙的。当我的程序变得更高级时,哪个会更好呢?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2013-10-29 14:36:37

我不会费心用例外的。相反,只是对方法/函数上的IF条件进行简单的测试。

就像@gnat说的,把它放在一个独立的函数中是最好的。另外,考虑为返回添加一个枚举,并添加一个额外的值,如:

代码语言:javascript
复制
 Exploratory,
 Reconstructive, 
 FollowUp, 
 Undefined

因此,当调用getProcType()时,它可以返回“未定义”返回。如果您的程序获得该消息,则向用户显示一条消息,然后退出。如果它得到一个适当的值,它将继续并调用另一个方法来调用每小时的薪酬和过程(单独的方法)。

在您的代码中,用户如何取消?当函数不断调用自己时,它们可能会被卡在试图输入1,2,3中。通常情况下最好是快速失败。因此,礼貌地告诉用户他们输入了错误的值,显示了一个可接受值的列表,然后退出。我假设这是某种命令行实用程序。

此外,我还可以建议使用更复杂的UI,比如列表框/组合框,这样可以避免用户输入任何内容。这样就根本不需要这种逻辑了。通常,我们希望尽可能避免在事物中使用类型。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/215851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档