6
我有通用的異常類是這樣的:構造泛型類型
public class DuplicateException<TEntity> : Exception
{
public TEntity Entity { get; set; }
}
而且我有可能會拋出構造泛型例外非泛型方法:
void Save()
{
throw new DuplicateException<SomeEntity>();
}
這方法可能拋出這個泛型異常,但只有這個構造類型爲DuplicateException<SomeEntity>
,它不能拋出此異常與其他類型參數,而不是SomeEntity
。
現在我想在xml-comment中爲Save
方法指定這個事實。 This article介紹一點點如何評論與一般異常的方法和我已經試過這兩個備選方案:由defauly在VS
1)通過插入自動完成:
/// <exception cref="DuplicateException{TEntity}" />
2)更換TEntity
與SomeEntity
/// <exception cref="DuplicateException{SomeEntity}" />
但在這兩種情況下,輸出XML仍然指出,這種方法可能會拋出通用非構造型沒有提及SomeEntity
所有內容:
<exception cref="T:MyNameSpace.DuplicateException`1" />
是否有必要拋出一個泛型異常?如果一個特定的代碼片段可能會拋出DuplicateException和DuplicateException ,並且您只想捕獲一個而不是另一個,則唯一的用處。 –
好的,但爲什麼不只有一個可以從任何Save *方法拋出的單個DuplicateException呢?爲什麼它需要是通用的? –
強類型並不能真正幫助你。是的,您可以使用正在保存的對象具有強類型屬性。但是你打算如何處理這種強類型的屬性?我想你會在這裏變得更好,並且會有一個非泛型例外。 –