2014-09-03 218 views
2

如果我有一個只與一個類相關的異常,哪種風格最好?我應該在課堂中包裝我的課堂自定義例外嗎?

當我把它包在我的課是這樣的:

class Class { 
    //some stuff 
    throw MyException(); 

    class MyException : Exception 
    { 
    //some stuff 
    } 
} 

或者離開它的類

class Class { 
    //some stuff 
    throw MyException(); 
} 
class MyException : Exception 
    { 
    //some stuff 
    } 

有使用一個或其他解決方案的任何進展之外?這有什麼編碼標準?

+0

你拋出的異常不應該是私人的。這甚至編譯? – nvoigt 2014-09-03 11:35:10

+0

是的,它編譯,並且拋出的異常在同一個命名空間中可見。 – NoNameProvided 2014-09-03 11:36:13

+2

你的第二個片段無效(非嵌套成員不能是私人的)。而..答案是它應該在課外和'public'之外,否則客戶端代碼怎麼會有機會接受它? – 2014-09-03 11:36:42

回答

4

哪種風格最好?

這是一個設計問題(更進一步)。

這有什麼編碼標準嗎?

書「在C#編程 - 考試參考70-483」說,

這是最好使用.NET Framework中定義的例外[除非有]與您的代碼的開發人員[ ]意識到這些例外情況,並且可以以比框架更具體的方式處理它們。

問問自己,是否沒有任何其他異常可能表示您想表示的內容以及需要哪些數據提取有關exc發生的信息主器件接收。

使用其中一種或其他解決方案有什麼進展嗎?

第一個設計說,類將處理異常,因爲它是一個代理服務器,外部代碼將不知道發生了什麼事,但可能只知道不同的輸出的dependig wheter異常被拋出與否。 只有類,其子類(受保護)及其「simblings」(內部)纔可以使用它。

第二個說世界將能夠明白出了什麼問題,併爲此做點什麼;其他類將改變他們自己的流程來處理錯誤。

相關問題