“mscorlib.dll中发生了'System.FormatException'类型的未处理异常”

时间:2014-10-05 19:50:24

标签: c#

    static void Main(string[] args)
    {
        int numVal = -1;
        int numval = -1;
        bool repeat = true;

        Console.WriteLine("Welcome to the perpendicular line finder!");

        while (repeat == true)
        {
            Console.WriteLine("Please write the gradient of the line");


            string userValue = Console.ReadLine();

            try
            {
                numVal = Convert.ToInt32(userValue);
            }
            catch (FormatException e)
            {
                Console.WriteLine("That is not a valid number");
                continue;
            }
            catch (OverflowException e)
            {
                Console.WriteLine("That number is too large, sorry i cannot help you");
                continue;
            }
            Console.WriteLine("So the gradient is {0}? Y/N", numVal);
            string go = Console.ReadLine();
            if (go == "Y" || go == "y")
            {
                repeat = true;
            }
            else
            {
                repeat = false;
            }

            Console.WriteLine("Please write the number that was added or subtracted");
            Console.WriteLine("but if it was subtracted leave the minus sign in");

            string userValue2 = Console.ReadLine();

            try
            {
                numval = Convert.ToInt32(userValue2);
            }
            catch (FormatException e)
            {
                Console.WriteLine("That is not a valid number");
                continue;
            }
            catch (OverflowException e)
            {
                Console.WriteLine("That number is too large, sorry i cannot help you");
                continue;
            }
            Console.WriteLine("So the added or subtracted number is {0}? Y/N", numval);
            string go1 = Console.ReadLine();
            if (go1 == "Y" || go1 == "y")
            {
                repeat = true;
            }
            else
            {
                repeat = false;
            }

            int answer = -1 / numVal; 

            Console.WriteLine("A perpendicular line to y = {0}x+{1} is y = {3}x", numVal, userValue2, answer);   
            Console.ReadLine();
        }

它出现了这个错误: mscorlib.dll中发生了未处理的“System.FormatException”类型异常 当我运行代码并进入第二行到最后一行代码时会发生这种情况。 我是c#的新手,不知道该怎么做请帮助我。

1 个答案:

答案 0 :(得分:0)

Console.WriteLine("A perpendicular line to y = {0}x+{1} is y = {3}x",
    numVal, userValue2, answer);   

格式字符串是指不存在的参数{3},替换为{2}