String FormatException

Jay*_*Jay 0 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");
        }
Run Code Online (Sandbox Code Playgroud)

样本输出:

Enter you're first name: 123hjay
INVALID NAME!!
Run Code Online (Sandbox Code Playgroud)

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

Lev*_*lho 10

你似乎误解了例外的目的.

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

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

if (name.Any(char.IsNumber))
{
    Console.WriteLine("Invalid Name.");
}
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

  • 从理论上讲,最好说`name.Any(char.IsNumber)`而不是`name.Count(char.IsNumber)> 0`,因为后者必须遍历整个字符串以确定确切的计数,即使在那里在字符串的早期存在一个数字字符. (3认同)