首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >String FormatException

String FormatException
EN

Stack Overflow用户
提问于 2012-11-10 17:38:39
回答 3查看 170关注 0票数 0

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

下面是我的代码:

代码语言:javascript
复制
 try {
            Console.Write("Enter your first name: ");
            string fname = Console.ReadLine();
            Console.Write("You're Name is: " + fname);

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

示例输出:

代码语言:javascript
复制
Enter you're first name: 123hjay
INVALID NAME!!

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-10 17:47:39

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

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

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

代码语言:javascript
复制
if (name.Any(char.IsNumber))
{
    Console.WriteLine("Invalid Name.");
}
Console.ReadLine();
票数 10
EN

Stack Overflow用户

发布于 2012-11-10 17:52:24

正如我的评论所说(在问题中),我真的不知道你在问什么,因为它没有抛出任何东西,但如果你真的想让它抛出一个错误(也是由评论建议的),这应该会有所帮助:

代码语言:javascript
复制
        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块。

票数 0
EN

Stack Overflow用户

发布于 2012-11-10 17:45:21

出于对回复的礼貌,以下是答案。

提示:您的异常是正确的!

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

如果你输入"7337“,它会抛出异常。

尝试使用: fname.ToString();

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

https://stackoverflow.com/questions/13320910

复制
相关文章

相似问题

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