다음을 통해 공유


ExceptionHandler 클래스

정의

WCF(Windows Communication Foundation) 런타임에 발생하는 처리되지 않은 예외에 대한 예외 처리기를 만들려면 ExceptionHandler 클래스를 확장합니다.

public ref class ExceptionHandler abstract
public abstract class ExceptionHandler
type ExceptionHandler = class
Public MustInherit Class ExceptionHandler
상속
ExceptionHandler

예제

다음 코드 예제에서는 ExceptionHandler 메서드를 재정의하는 HandleException 추상 클래스를 구현하는 방법을 보여 줍니다.

using System;
using System.ServiceModel.Dispatcher;

namespace CS
{
    public class MyExceptionHandler: ExceptionHandler
    {
            // HandleException method override gives control to
            // your code.
            public override bool HandleException ( Exception ex )
            {
                // This method contains logic to decide whether
                // the exception is serious enough
                // to terminate the process.
                return ShouldTerminateProcess (ex);
            }

            public bool ShouldTerminateProcess (Exception ex)
            {
                // Write your logic here.
                return  true;
            }
    }


Imports System.ServiceModel.Dispatcher

Namespace CS
    Public Class MyExceptionHandler
        Inherits ExceptionHandler
            ' HandleException method override gives control to 
            ' your code.
            Public Overrides Function HandleException(ByVal ex As Exception) As Boolean
                ' This method contains logic to decide whether 
                ' the exception is serious enough
                ' to terminate the process.
                Return ShouldTerminateProcess (ex)
            End Function

            Public Function ShouldTerminateProcess(ByVal ex As Exception) As Boolean
                ' Write your logic here.
                Return True
            End Function
    End Class

다음 코드 예제에서는 사용자 지정을 사용 하도록 설정 하는 방법을 보여 줍니다. MyExceptionHandler WCF 런타임 내에서 발생 하는 처리 되지 않은 예외에 대 한 합니다.

    static void Main(string[] args)
    {
        // Create an instance of the MyExceptionHandler class.
        MyExceptionHandler thisExceptionHandler =
            new MyExceptionHandler();

        // Enable the custom handler by setting
        //   AsynchronousThreadExceptionHandler property
        //   to this object.
        ExceptionHandler.AsynchronousThreadExceptionHandler =
            thisExceptionHandler;

        // After the handler is set, write your call to
        // System.ServiceModel.ICommunication.Open here
    }
}
    Sub Main(ByVal args() As String)
        ' Create an instance of the MyExceptionHandler class.
        Dim thisExceptionHandler As New MyExceptionHandler()

        ' Enable the custom handler by setting 
        '   AsynchronousThreadExceptionHandler property
        '   to this object.
        ExceptionHandler.AsynchronousThreadExceptionHandler = thisExceptionHandler

        ' After the handler is set, write your call to 
        ' System.ServiceModel.ICommunication.Open here
    End Sub
End Module

설명

ExceptionHandler 클래스를 확장하고 HandleException 메서드를 재정의하여 예외가 발생할 경우 애플리케이션을 종료할지 여부를 결정합니다. 다음 사용자의 새 인스턴스를 만듭니다 ExceptionHandler 클래스 및 정적으로 할당할 AsynchronousThreadExceptionHandler 또는 TransportExceptionHandler WCF 클라이언트 또는 서비스를 만들기 전에 속성입니다.

생성자

ExceptionHandler()

ExceptionHandler 클래스의 새 인스턴스를 초기화합니다.

속성

AlwaysHandle

모든 예외를 처리하는 ExceptionHandler 인스턴스를 가져옵니다.

AsynchronousThreadExceptionHandler

애플리케이션 도메인에 대한 현재 ExceptionHandler 구현을 가져오거나 설정합니다.

TransportExceptionHandler

애플리케이션 도메인에 대한 현재 전송 ExceptionHandler 구현을 가져오거나 설정합니다.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
HandleException(Exception)

파생 클래스에서 재정의된 경우 예외가 처리되었으면 true를 반환하고, 예외가 다시 throw되면 false를 반환한 후 애플리케이션이 종료됩니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상