1

C# 및 WPF를 사용하여 Microsoft Word 추가 기능을 개발할 예정입니다.Microsoft에서 오류 메시지를 표시하기 전에 Word 추가 기능에서 C# WPF 처리되지 않은 예외를 catch하십시오.

내 창 중 하나에서 도우미 클래스가 이벤트에서 예외를 throw하고 있습니다. 나는 그것을 잡아서 사용자에게 오류 메시지를 표시 할 수 있도록 예외를 창 수준까지 버블 링하려고합니다. 도우미 클래스의 이벤트에 있기 때문에 try/catch 블록을 사용하여 윈도우 코드에서 메소드 호출을 포위 할 수는 없습니다.

Application.Current는 null을 반환하므로 Application Dispatcher를 사용할 수 없습니다.

Dispatcher.CurrentDispatcher.UnhandledException을 사용하고 DispatcherUnhandledExceptionEventHandler을 추가 할 수 있습니다. 이 이고 예외는 발견되었습니다. 그러나 마이크로 소프트는

처리되지 않은 예외가 응용 프로그램

내 이벤트 처리기가 호출 전에 오류 메시지 에서 발생 표시합니다.

나는이 문제를 잘못된 방법으로 해결하려고합니까 아니면 Microsoft의 처리되지 않은 예외 오류 메시지를 표시하지 않는 방법이 있습니까?

감사합니다.

답변

1

Microsoft Word에서 예외를 catch하고 처리되지 않은 예외 메시지를 throw하기 전에 UnhandledExceptionFilter를 사용하여 예외를 catch합니다.

Dispatcher.CurrentDispatcher.UnhandledExceptionFilter += 
    new DispatcherUnhandledExceptionFilterEventHandler(Dispatcher_UnhandledExceptionFilter); 

void Dispatcher_UnhandledExceptionFilter(object sender, DispatcherUnhandledExceptionFilterEventArgs e) 
{ 
    e.RequestCatch = false; 
    // Display error message or close the window. 
} 

Word에서 예외를 처리하지 않도록 RequestCatch를 false로 설정해야합니다.

관련 문제