如果异常被捕获则再次输入

时间:2017-04-09 13:35:52

标签: c# exception

我想要求用户重新输入,如果异常被阻止,但不知道如何:

class Quadrilateral
{
    Point[] pointsArr = new Point[4];

    public Quadrilateral()
    {
        foreach (Point pointVar in pointsArr)
        {

            try
            {
                Console.WriteLine("Input coordinates:");
                float x = float.Parse(Console.ReadLine());
                float y = float.Parse(Console.ReadLine());

                }
            catch (FormatException)
            {
                Console.WriteLine("Illegal value, please re-input");     
            }

        }
    }     
}

我想使用do-while循环,但是有一些问题。

1 个答案:

答案 0 :(得分:2)

您可以使用普通的 while 循环,只有在没有异常时才增加迭代器变量,从而确保您输入所需的确切次数。如果发生任何异常,请使用continue关键字转到下一次迭代。

为简单起见,我使用了Int类型

        int[] pointsArr = new int[4];

        int arraySize = pointsArr.Length;
        int i = 0;
        while (i < arraySize)
        {
            try
            {
                Console.WriteLine("Input coordinates:");
                float x = float.Parse(Console.ReadLine());
                float y = float.Parse(Console.ReadLine());

            }
            catch (FormatException)
            {
                Console.WriteLine("Illegal value, please re-input");
                continue;
            }
            i++;
        }
        Console.ReadLine();