当方法抛出异常时,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);
}
}
}
}
答案 0 :(得分:2)
一旦方法抛出异常,它将停止工作,直到您捕获该异常。由于异常仅在Main方法中捕获,因此永远不会执行Console.ReadKey()
方法。如果您希望它被执行,您可以在DoWork
处捕获异常,或者在捕获异常时或之后放置ReadKey
方法。