The ReadKey() method is not working when the method throws an exception? When the program runs the ReadKey method works only if the method dos not throw an exception, if the method throws an exception the console window just appears for a second or two.

Here is the method:

#region Using directives
using System;
#endregion

namespace ParamsArray
{
class Util
{
    public static int Sum(params int[] paramList)
    {
        if (paramList == null)
        {
            throw new ArgumentException("Util.Sum: null parameter list");
        }
        if (paramList.Length == 0)
        {
            throw new ArgumentException("Util.Sum: empty parameter list");
        }

        int sumTotal = 0;
        foreach (int i in paramList)
        {
            sumTotal += i;
        }

        return sumTotal;
    }
}

}

Here is Program.cs

#region Using directives

using System;
using System.Collections.Generic;
using System.Text;

#endregion

namespace ParamsArray
{
    class Program
    {
        static void DoWork()
        {
            Console.WriteLine(Util.Sum(null));
            Console.ReadKey();
        }

    static void Main()
    {
        try
        {
            DoWork();
        }
        catch (Exception ex)
        {
            Console.WriteLine("Exception: {0}", ex.Message);
        }
    }
}

}

有帮助吗?

解决方案

Once a method throws an exception, it stops working until you catch that exception. Since the exception is only caught at the Main method, the Console.ReadKey() method is never executed. If you want it to be executed, you may either catch the exception at DoWork or place the ReadKey method at or after catching the exception.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top