我是c#的绝对初学者,我不知道这段代码有什么问题,需要一些帮助
try
{
double[,] matrix = new double[2,2];
String liczba = "85481";
matrix[1,1] = double.Parse(liczba);
}
catch (Exception)
{
Console.WriteLine ("general exception");
}
catch (OverflowException)
{
Console.WriteLine ("exceeded scope of variable");
}
catch (FormatException)
{
Console.WriteLine ("variable converstion error");
}
答案 0 :(得分:2)
编译器可以帮助你解决这个问题。您将有两个看起来像这样的错误:
前一个catch子句已经捕获了这个或超类型的所有异常('System.Exception')
在不太具体的类型之后,您无法捕获更具体的Exception
类型。从C# reference开始强调我的:
... catch子句的顺序很重要,因为 catch子句按顺序检查。在不太具体的例外之前捕获更具体的例外。 如果您订购了catch块,编译器会产生错误,以便永远无法访问以后的块。
所有例外都来自Exception
(System.Exception
)。重新排序它们以将Exception
的处理程序作为最后一个catch
子句并且它将编译:
try
{
double[,] matrix = new double[2, 2];
String liczba = "85481";
matrix[1, 1] = double.Parse(liczba);
}
catch (OverflowException)
{
Console.WriteLine("exceeded scope of variable");
}
catch (FormatException)
{
Console.WriteLine("variable converstion error");
}
catch (Exception)
{
Console.WriteLine("general exception");
}