다음을 통해 공유


사용자 지정 예외 디자인

업데이트: 2007년 11월

다음 지침은 사용자 지정 예외를 올바로 디자인하는 데 도움이 됩니다.

예외 계층 구조는 되도록 단순하게 만듭니다.

자세한 내용은 형식 및 네임스페이스를 참조하십시오.

System.Exception 또는 다른 공통 기본 예외 중 하나에서 예외를 파생합니다.

표준 예외 형식 Catch 및 Throw에는 ApplicationException에서 사용자 지정 예외를 파생해서는 안 된다는 지침이 있습니다.

예외 클래스 이름 뒤에는 "Exception"을 붙입니다.

일관성 있는 명명 규칙은 새 라이브러리에 금방 익숙해질 수 있ㅋ도록 도와줍니다.

예외를 serialize할 수 있도록 만듭니다. 응용 프로그램 도메인과 원격 경계에서 예외가 올바르게 작동하려면 serialize할 수 있어야 합니다.

형식을 serialize할 수 있도록 만드는 방법은 Serialization을 참조하십시오.

모든 예외에 대해 최소한 다음 공통 생성자를 제공합니다. 매개 변수의 이름 및 형식이 다음 코드 예제에서 사용되는 이름 및 형식과 같은지 확인합니다.

Public Class NewException
    Inherits BaseException
    Implements ISerializable

    Public Sub New()
        MyBase.New()
        ' Add implementation.
    End Sub

    Public Sub New(ByVal message As String)
        MyBase.New()
        ' Add implementation.
    End Sub

    Public Sub New(ByVal message As String, ByVal inner As Exception)
        MyBase.New()
        ' Add implementation.
    End Sub

    ' This constructor is needed for serialization.
    Protected Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext)
        MyBase.New()
        ' Add implementation.
    End Sub
End Class
public class NewException : BaseException, ISerializable
{
    public NewException()
    {
        // Add implementation.
    }
    public NewException(string message)
    {
        // Add implementation.
    }
    public NewException(string message, Exception inner)
    {
        // Add implementation.
    }

    // This constructor is needed for serialization.
   protected NewException(SerializationInfo info, StreamingContext context)
   {
        // Add implementation.
   }
}

메시지 문자열 외에도 예외와 관련된 추가 정보에 프로그래밍 방식으로 액세스하기 위한 예외 속성을 제공할 수 있습니다.

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

디자인 지침에 대한 자세한 내용은 2005년에 Addison-Wesley에서 책으로 출간한 Krzysztof Cwalina와 Brad Abrams의 "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries"를 참조하십시오.

참고 항목

개념

Throw할 예외의 올바른 형식 선택

기타 리소스

클래스 라이브러리 개발을 위한 디자인 지침

예외 디자인 지침