0

我正在做一个询问你名字的活动,如果插入了一个数字,它应该告诉你输入是无效的。

这是我的代码:

 try {
            Console.Write("Enter your first name: ");
            string fname = Console.ReadLine();
            Console.Write("You're Name is: " + fname);

        }
        catch (Exception) {
            Console.Write("INVALID NAME");
        }

样本输出:

Enter you're first name: 123hjay
INVALID NAME!!

我知道我的例外是错误的;我需要你们的帮助。

4

3 回答 3

10

您似乎误解了异常的目的。

当程序在执行过程中遇到错误时会引发异常。例如,将字母分配给 int 会引发错误。虽然意见不一,但我倾向于不处理有异常的用户输入错误。此外,请考虑您在代码中编写的逻辑。程序怎么会知道在名为 fname 的变量中输入数字是不正确的?

将逻辑写入程序以测试输入错误,然后返回适当的响应。在您的情况下,如果您想确保没有输入数字,您可以执行以下操作:

if (name.Any(char.IsNumber))
{
    Console.WriteLine("Invalid Name.");
}
Console.ReadLine();
于 2012-11-10T09:47:39.103 回答
0

正如我的评论所说(在问题中),我并没有真正明白你在问什么,因为它不会抛出任何东西,但如果你确实希望它抛出错误(评论也建议),这个应该有帮助:

        Console.Write("Enter you're first name: ");
        string fname = Console.ReadLine();

        foreach (var character in fname)
        {
            if (Char.IsDigit(character))
                throw new Exception("Numbers are not allowed.");
        }

        Console.Write("You're Name is: " + fname);

它非常直截了当,您可以用英语阅读并理解我所做的事情。您可以随意修改代码,使用 Visual Studios IntelliSense 查看类似的功能,并根据您的需要对其进行调整。

如果需要,当然可以添加 try & catch 块。

于 2012-11-10T09:52:24.210 回答
-3

为了回复的礼貌,这里是答案。

提示:你的例外是正确的!

在您的控制台“Glee”中输入它不会抛出异常。

如果您键入“7337”,它会抛出异常。

尝试使用: fname.ToString();

于 2012-11-10T09:45:20.647 回答