[英]System.Exception or just Exception
我是編程的初學者,說實話我學到的一切,我想確保我正確地做到了。 我的問題是,在MSDN網站上,它說明了在處理異常時我必須使用“System.foo”,例如:
catch (System.DllNotFoundException ex)
但是我周圍的很多程序員都傾向於使用沒有標題的異常,例如:
catch (DllNotFoundException ex)
我知道這可能是微不足道的,也許我非常愚蠢地問,但這兩種實現有什么真正的區別嗎? 喜歡哪兩個更好的做法?
我很感激任何建議,
提前致謝。
using System;
using System.IO;
...
catch (DllNotFoundException)
{
}
catch (IOException)
{
}
要么
// not using that namespaces
...
catch (System.DllNotFoundException)
{
}
catch (System.IO.IOException)
{
}
所以沒有區別。 取決於您導入的名稱空間。
它們是表達完全相同的不同方式。 DllNotFoundException是System命名空間的一部分,它通常包含在using System;
默認情況下,該文件頂部的語句。 System.DllNotFoundException只是它的完整類型名稱。
通過using System;
在文件的頂部,您基本上為任何System。*類創建快捷方式,在您的文件中引用您的引用。 例如,您可以但不需要指定System命名空間。 相反,你可以不using System;
或任何其他使用,但那么您將通過其全名引用文件中的每個類型。
沒有區別,這只是一種風格差異。 在第二個示例中,您將需要一個using System;
聲明告訴編譯器在哪里找到DllNotFoundException。
System
是命名空間。 命名空間用於組織代碼並處理命名問題。
類DllNotFoundException
是System
命名空間的一部分,因此它的全名是System.DllNotFoundException
。
如果包含using System;
在文件頭中,您可以使用System
命名空間中的所有類而不指定全名,從而導致DllNotFoundException
。
使用System.Exception是特定的,因為您可以在不同的庫中使用相同的名稱,您可以准確指定所需的名稱。 因此,它很可能是相同的,但這意味着如果有選擇,就沒有歧義。
在.NET中,名稱空間用於組織類型。 您可以使用它們的全名來訪問這些類型,在本例中為System.DllNotFoundException,或者在使用using語句時 - 在本例中使用System,您可以省略所有頂級系統類型的System點前綴。
在回答你的問題時,我認為你應該使用它,因為它通常使你的代碼更清晰,因為它更少的類型和讀取使用的類型。
當使用多個使用時,如果在System和Foo中存在DllNotFoundException,使用System並使用Foo類型,則可能存在使用類型的歧義....
當存在歧義時(編譯器會抱怨)你可以指定整個類型名稱或使用MyException = Foo.DllNotFoundException添加一個,然后可以使用MyException而不是Foo.DllNotFoundException錯誤名稱示例我知道:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.