나만의 사용자 정의 예외를 생성하기 위한 모범 사례는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/54851

  •  09-06-2019
  •  | 
  •  

문제

후속 조치에서 이전 질문 예외와 관련하여 .NET에서 사용자 지정 예외를 만드는 모범 사례는 무엇입니까?

보다 구체적으로 System.Exception, System.ApplicationException 또는 기타 기본 예외에서 상속해야 합니까?

도움이 되었습니까?

해결책

다음에서 상속 System.Exception. System.ApplicationException 쓸모가 없으며 디자인 지침에 "하지 마라 던지거나 파생 System.ApplicationException."

보다 http://blogs.msdn.com/kcwalina/archive/2006/06/23/644822.aspx

다른 팁

C# IDE에서 '예외'를 ​​입력하고 Tab 키를 누르세요.이는 새로운 예외 유형 작성을 시작할 수 있도록 확장됩니다.예외 관행에 대한 일부 토론에 대한 링크가 포함된 의견이 있습니다.

개인적으로 저는 예외 유형까지 확장되는 소규모 클래스를 많이 만드는 것을 좋아합니다.예를 들어 Foo 클래스를 작성할 때 다음 중에서 선택할 수 있습니다.

  1. throw new Exception("Bar happened in Foo");
  2. throw new FooException("Bar happened");
  3. throw new FooBarException();

어디

class FooException : Exception 
{
    public FooException(string message) ... 
}

그리고

class FooBarException : FooException 
{
    public FooBarException() 
        : base ("Bar happened") 
    {
    }
}

나는 OO 솔루션이라고 생각하기 때문에 세 번째 옵션을 선호합니다.

이에 대한 코드 조각이 있습니다.그것을 사용하십시오.또한 나중에 코드 분석을 확인하세요.코드 조각에서는 구현해야 하는 생성자 중 하나를 생략합니다.

모든 수준(사용자 지정, 던지기, 잡기)에서 예외를 처리할 때 기억해야 할 가장 중요한 점은 예외는 예외적인 조건에만 적용된다는 것입니다.

다른 모든 예외가 상속되는 기본 예외는 System.Exception이며, 더 구체적인 예외의 기본 메시지와 같은 용도로 사용하지 않는 한 이것이 바로 상속해야 하는 예외입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top