我正在试图弄清楚如何根据数组的长度抛出异常,但同时,如果长度正确则能够返回一个值
例如:
public Complex readInput()
{
Complex temp = 0;
try
{
Console.Write("Enter input: ");
string input = Console.ReadLine();
String[] cplx= input.Split(' ');
if (cplx.Length != x)
{
throw new IndexOutOfRangeException("INVALID INPUT ENTRY...");
}
temp = new Complex(Double.Parse(cplx[0]), Double.Parse(cplx[1]), ...);
}
catch (FormatException)
{
Console.WriteLine("INVALID INPUT ENTRY...");
}
return temp;
} // end readInput
理想情况下,我只想要if(opr.Length ...)和IndexOutOfRangeException ..我认为我错误地使用了IndexOutOfRange。如果数组长度不等于x(有可能是#),有没有办法抛出异常,但如果是,则返回其中没有try / catch的内容?
编辑:计算出部分内容:https://stackoverflow.com/a/20580118/2872988
答案 0 :(得分:0)
我认为你需要像这样扔掉
public Complex readInput()
{
Complex temp = 0;
try
{
Console.Write("Enter input: ");
string input = Console.ReadLine();
String[] cplx= input.Split(' ');
if (cplx.Length >= x)
{
throw new IndexOutOfRangeException("INVALID INPUT ENTRY...");
}
temp = new Complex(Double.Parse(cplx[0]), Double.Parse(cplx[1]), ...);
}
catch (FormatException)
{
Console.WriteLine("INVALID INPUT ENTRY...");
}
return temp;
}
答案 1 :(得分:-1)
Hy,如果您使用自己的异常描述,代码会更好一些。尝试使用Exception(字符串描述)。代码看起来会好得多。请记住,例外情况是提醒程序员某些事情不能正常工作。
Complex temp = null;
try
{
Console.Write("Enter input: ");
string input = Console.ReadLine();
String[] cplx = input.Split(' ');
if (cplx.Length != x)
throw new Exception("INVALID INPUT ENTRY...");
temp = new Complex(Double.Parse(cplx[0]), Double.Parse(cplx[1]));
}
catch (Exception)
{
Console.WriteLine("INVALID INPUT ENTRY...");
}