문제

Enteprise Library 4.1 용 IExceptionHandler를 구현해야합니다. 내 특별한 경우에 나는 그것을 사용하여 Fogbugz에 예외를 기록하고 싶지만 내부 세부 사항은 내가 요구하는 것이 아닙니다. 내가 필요한 것은 모범 사례 - 구현, app.config 또는 web.config에 대한 구성을 얻는 방법입니다. 등.

지금까지 코드가 있습니다.

   public class LcpFogbugzExceptionHandler : IExceptionHandler {
   /// <summary>
   /// Initializes a new instance of the <see cref="LcpFogbugzExceptionHandler"/> class.
   /// </summary>
   public LcpFogbugzExceptionHandler() {
        // <param name="ignore">The ignore.</param>
        //NameValueCollection ignore
    }

    /// <summary>
    /// Initializes a new instance of the <see cref="T:LcpFogbugzExceptionHandler"/> class.
    /// </summary>
    /// <param name="ignore">The ignore.</param>
   public LcpFogbugzExceptionHandler(NameValueCollection ignore) {
   }

    /// <summary>
    /// Handles the exception.
    /// </summary>
    /// <param name="exception">The exception.</param>
    /// <param name="handlingInstanceId">The handling instance id.</param>
    /// <returns></returns>
   [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)")]
    public Exception HandleException(Exception exception, Guid handlingInstanceId) {
        // Perform processing here. The exception returned will be passed to the next
        // exception handler in the chain. 

        return exception;
    }

}
도움이 되었습니까?

해결책

모범 사례가 의미하는 바를 잘 모르겠습니다. 코드 골격이 올바른 것이 있으므로 구현으로 채우십시오. 유용 할 수있는 임의의 포인트 :

정상적인 방식으로 구성 설정을 읽을 수 있습니다 (ConfigurationManager 등). 핸들러가 동일한 프로세스와 스레드에서 실행 중입니다. ExceptionPolicy.HandleException 처음에.

여러 스레드에서 예외를 처리 해야하는 경우 핸들러 코드 스레드-안전을 만드는 것이 좋습니다 (이 프로젝트에 있지 않으면 다음 스레드에서 필요할 수 있습니다).

통화 코드에서 비 정적 인스턴스 데이터를 핸들러에 전달하려면 Data 처리중인 예외의 사전은 전체 핸들러 체인을 통해 손상되지 않고 호출 코드로 다시 보존됩니다. 이 기술을 사용하여 핸들러로 데이터를 보내고 핸들러에서 데이터를 다시 가져오고, 한 핸들러가 체인에서 다음 중 하나의 동작을 제어하도록 허용했습니다. 이렇게하면 모든 것을 확인하십시오 Data 값은 직렬화 가능합니다.

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