나는 다음과 같이 일반적인 예외 클래스가생성 된 제네릭 형식은
void Save()
{
throw new DuplicateException<SomeEntity>();
}
이를 메서드는이 일반 예외를 throw 할 수 있지만이 중 하나만 구성된 형식 DuplicateException<SomeEntity>
이고 SomeEntity
대신 다른 형식 매개 변수를 사용하여이 예외를 throw 할 수 없습니다.
이제 Save
메서드의 xml-comment에이 사실을 지정하고 싶습니다. This article은 일반적인 제외 방법을 언급하는 방법을 조금 설명하고 나는이 두 가지 대안 시도했다 : VS에서 자동 완성에 의해 defauly에 의해
1) 인서트 :
TEntity
를 대체
/// <exception cref="DuplicateException{TEntity}" />
2) SomeEntity
/// <exception cref="DuplicateException{SomeEntity}" />
그러나 출력 XML은이 메서드가 일반 을 생성하지 않을 수도 있음을 나타내며 형식은를 언급하지 않습니다.전혀 :
<exception cref="T:MyNameSpace.DuplicateException`1" />
제네릭 예외를 throw해야합니까? 그것의 유일한 사용은 특정 코드 조각이 잠재적으로 DuplicateException과 DuplicateException 을 던질 수 있고 하나만 잡아서 다른 하나는 잡아 내지 않는 경우에 사용됩니다. –
그렇다면 Save * 메소드에서 던져 질 수있는 단일 DuplicateException을 가지고 있지 않은 이유는 무엇입니까? 왜 그것이 일반적 일 필요가 있습니까? –
강하게 입력하면 실제로 많은 도움이되지 않습니다. 예, 저장중인 객체에 강력하게 형식화 된 속성을 가질 수 있습니다. 그러나 그 강하게 타자를 치는 재산으로 무엇을 할 것입니까? 나는 당신이 여기서 비 제네릭 예외로 더 나아질 것이라고 생각합니다. –