C#语法错误

Per*_*kie -1 c# exception

是语法错误还是编译错误?

using System;

namespace AAA
{
    class MyException : Exception{

    }
    class My2Exception : MyException{

    }
    class MainClass
    {
        public static void Main (string[] args)
        {
            try{
                throw new MyException();
            }
            catch(Exception e){  // compiler says that this catch all exception occur          error? Is it syntax error?
            }
            catch(MyException m){  // Syntax error
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是语法错误吗?这个错误语法错误了吗?谢谢

Jam*_*ght 7

由于catch类型的块Exception是可能的最不具体的异常处理程序,因此提供更具体的catch块的需求不仅是多余的,而且在C#中它是编译时错误.因此,在多捕获块中,您应始终catch最后指定最通用的块:

using System;

namespace AAA
{
    class MyException : Exception
    {    

    }

    class MainClass
    {
        public static void Main (string[] args)
        {
            try
            {
                throw new MyException();
            }
            catch (MyException m)
            {  
                //TODO: something
            }
            catch (Exception e)
            {
                //TODO: something
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)