C# 应用程序引发异常时ReadKey方法不起作用

C# 应用程序引发异常时ReadKey方法不起作用,c#,exception,console-application,console.readkey,C#,Exception,Console Application,Console.readkey,当ReadKey()方法引发异常时,该方法不起作用?当程序运行时,ReadKey方法仅在该方法未引发异常时才起作用,如果该方法引发异常,控制台窗口只会出现一两秒钟 方法如下: #region Using directives using System; #endregion namespace ParamsArray { class Util { public static int Sum(params int[] paramList) { if (paramL

当ReadKey()方法引发异常时,该方法不起作用?当程序运行时,ReadKey方法仅在该方法未引发异常时才起作用,如果该方法引发异常,控制台窗口只会出现一两秒钟

方法如下:

#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;
    }
}
}

这里是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);
        }
    }
}

}

一旦方法抛出异常,它将停止工作,直到您捕获该异常为止。由于只在Main方法中捕获异常,因此永远不会执行
Console.ReadKey()
方法。如果希望执行,可以在捕获异常时或捕获异常后,在
DoWork
处捕获异常,或将
ReadKey
方法放置在捕获异常时或之后