일부 업무에 중요한 작업에 대한 감사 서비스를 작성하고 있습니다. 이 서비스는 IoC 패턴을 사용하여 구현됩니다.내 자신의 비 LINQ 코드에서 DuplicateKeyException을 사용해야합니까?
이 때문에 구현과 관련이없는 예외를 발생시킬 필요가 있습니다.
감사 프로세스의 정보에는 고유 한 키가 포함되어 있습니다. 감사 프로세스의 일부로 주요 고유성 검사를 제공하는 것이 현재 서비스 요구 사항입니다. 중복 키는 프로세스 요구 사항을 위반합니다.
현재 서비스는 SQL-Server에 대한 쓰기로 구현됩니다. 가능성은 낮지 만 키가 중복 될 수 있습니다.이 경우 SqlException
이 기본 키 제약 조건 위반에 대해 불만을 제기합니다. 잡히고 새로운 키를 생성하는 프로세스를 허용 할 수있는보다 일반적인 "중복 키"예외에서이 예외를 감싸는 것이 좋습니다.
일반적으로 나는 새로운 예외 클래스를 생성하는 것을 싫어합니다. 동일한 정보를 전달하는 데 사용할 수있는 거의 항상 적합한 유형이 있습니다. 이전에 System.Data.Linq.DuplicateKeyException
을 잡았습니다. LINQ 관련 네임 스페이스에서 온다는 점만 빼고는 여기에 던질 수있는 좋은 후보로 보입니다. 내 인터페이스는 LINQ와 아무 관련이 없습니다. 어쨌든
- 던져
System.Data.Linq.DuplicateKeyException
을 아무도 너무 많이 네임 스페이스로 읽지 않습니다 희망 :내 즉시 옵션이 될 것으로 보인다.
System.InvalidOperationException
을 던지고 다른 이유로이 예외를 throw 할 수있는 구현이 필요하지 않습니다.- 내 맞춤 설정
DuplicateKeyException
을 던집니다. - 키 고유성을 확인하기 위해 인터페이스에 별도의 메소드를 작성하고 키와 값을 작성하기 전에 이것을 호출하십시오.
귀하의 의견은 무엇입니까?
좋은 답변입니다. 감사합니다. 짜증나는 대체물을 제거하는 과정에서 커스텀 예외가 필연적 인 최선의 선택이라고 생각합니다. –