[英]C# Syntax error
是語法錯誤還是編譯錯誤?
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
}
}
}
}
這是語法錯誤嗎? 這是錯誤語法錯誤嗎? 謝謝
由於Exception
類型的catch
塊可能是最不特定的異常處理程序,因此提供一個更特定的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
}
}
}
}
Exception
是比MyException
更通用的類,這就是為什么您應該最后捕獲它。 正如Shaharyar所說,這是“語義錯誤”
try{
throw new MyException();
}
catch(MyException m){
}
catch(Exception e){ // Syntax error
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.