我正在做一个询问你的名字的活动,如果插入了一个数字,它应该会告诉你输入是无效的。
下面是我的代码:
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!!我知道我的例外是错的;我需要你们的帮助。
发布于 2012-11-10 17:47:39
您似乎误解了异常的目的。
当程序在执行过程中遇到错误时,会引发异常。例如,将一个字母赋给一个int会抛出一个错误。虽然观点不一,但我倾向于不处理有异常的用户输入错误。此外,请考虑您在代码中编写的逻辑。程序如何知道在名为fname的变量中输入数字是不正确的?
在程序中写入逻辑以测试输入错误,然后返回适当的响应。在您的示例中,如果您希望确保没有输入数字,则可以执行以下操作:
if (name.Any(char.IsNumber))
{
Console.WriteLine("Invalid Name.");
}
Console.ReadLine();发布于 2012-11-10 17:52:24
正如我的评论所说(在问题中),我真的不知道你在问什么,因为它没有抛出任何东西,但如果你真的想让它抛出一个错误(也是由评论建议的),这应该会有所帮助:
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-10 17:45:21
出于对回复的礼貌,以下是答案。
提示:您的异常是正确的!
在你的控制台中输入"Glee“它不会抛出异常。
如果你输入"7337“,它会抛出异常。
尝试使用: fname.ToString();
https://stackoverflow.com/questions/13320910
复制相似问题