C#-如何在此代码上为非数字创建异常?

C#-如何在此代码上为非数字创建异常?,c#,exception-handling,int,C#,Exception Handling,Int,我想创建一个异常,当我键入非数字字符时,最好使用此代码中的Try/catch。我尝试使用int.TryParse,但当我使用非数字字符时,它只返回0。但不要向我显示任何错误消息,但使用int.Parse(Console.ReadLine)时,我收到了一条错误消息: 输入字符字符串的格式不正确 代码 您可以创建如下异常: Console.WriteLine("Type a number: "); string line = Console.ReadLine(); try {

我想创建一个异常,当我键入非数字字符时,最好使用此代码中的Try/catch。我尝试使用int.TryParse,但当我使用非数字字符时,它只返回0。但不要向我显示任何错误消息,但使用int.Parse(Console.ReadLine)时,我收到了一条错误消息:

输入字符字符串的格式不正确

代码


您可以创建如下异常:

Console.WriteLine("Type a number: ");
string line = Console.ReadLine();
    try {
        num = Int32.Parse(line);
    } 
    catch (FormatException) {
        Console.WriteLine("{0} is not an integer", line);
    }
或者,您也可以使用前面提到的
int.TryParse

Console.WriteLine("Type a number: ");
string line = Console.ReadLine();
if (!int.TryParse(line, out num)) {
    Console.WriteLine("{0} is not an integer", line);
}

您可以创建如下异常:

Console.WriteLine("Type a number: ");
string line = Console.ReadLine();
    try {
        num = Int32.Parse(line);
    } 
    catch (FormatException) {
        Console.WriteLine("{0} is not an integer", line);
    }
或者,您也可以使用前面提到的
int.TryParse

Console.WriteLine("Type a number: ");
string line = Console.ReadLine();
if (!int.TryParse(line, out num)) {
    Console.WriteLine("{0} is not an integer", line);
}

您应该尝试使用Int32.TryParse(而不是Parse)处理输入,而不是引发异常:


您应该尝试使用Int32.TryParse(而不是Parse)处理输入,而不是引发异常:


正如您所知,已经引发了一个非数字异常,即FormatException。为什么要重新显示它?正如您所知,已经引发了一个非数字异常,一个FormatException。你为什么要重播它?但是条件声明呢?高于或低于“x”值?带有int.TryParse的非数字字符只返回一个0值。我只是稍微修改了答案。TryParse返回一个布尔值(true或false),如果它返回true(即它是一个数字),它将进入块并验证该数字是否大于20。但是condictional语句呢?高于或低于“x”值?带有int.TryParse的非数字字符只返回一个0值。我只是稍微修改了答案。TryParse返回一个布尔值(真或假),如果它返回真(即它是一个数字),它将进入块并验证该数字是否大于20。