String FormatException

时间:2012-11-10 09:38:39

标签: c# string exception

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

这是我的代码:

 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!!

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

3 个答案:

答案 0 :(得分:10)

您似乎误解了例外的目的。

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

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

if (name.Any(char.IsNumber))
{
    Console.WriteLine("Invalid Name.");
}
Console.ReadLine();

答案 1 :(得分: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查看类似的功能,并根据您的需要进行调整。

如果您需要,请添加试用版&当然,抓住街区。

答案 2 :(得分:-3)

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

提示:你的例外是对的!

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

如果输入“7337”,则会抛出异常。

尝试使用:fname.ToString();