C# C代码异常

C# C代码异常,c#,exception,try-catch,C#,Exception,Try Catch,我是c语言的绝对初学者,我不知道这段代码有什么问题,需要一些帮助 try { double[,] matrix = new double[2,2]; String liczba = "85481"; matrix[1,1] = double.Parse(liczba); } catch (Exception) { C

我是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");
        }

编译器在这里可以帮你一点忙。您将有两个错误,如下所示:

先前的catch子句已捕获此类型或超级类型“System.Exception”的所有异常

您无法在不太特定的类型之后捕获更特定的异常类型。我的重点是:

。。。catch子句的顺序很重要,因为catch子句是按顺序检查的。在不太具体的异常之前捕获更具体的异常。如果您对catch块进行排序,使以后的块永远无法到达,编译器将产生错误

所有异常都源自异常System.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");
}

唯一的错误似乎是,先捕获基类异常,然后再捕获特定的异常。反过来,也应该忽略实际的异常,只显示一条消息。whron是什么意思?什么不按预期工作?