2011-03-03 6 views
3

우리는 MVVMLight with WPF를 사용하고 있습니다. 보기 & ViewModels는 다른 프로젝트에 있습니다. 뷰에서 발생하는 모든 처리되지 않은 예외는 app.xaml.cs 파일에서 처리 할 수 ​​있지만 모든 기능에서 try..catch를 작성하는 대신 중앙 집중식 예외 처리 메커니즘을 제공하여 ViewModel에서 처리되지 않은 예외를 catch하고 싶습니다. 위에서 우리가 어떻게 달성 할 수 있는지에 관해 제안 해주십시오. 감사합니다.MVVMLight의 예외 처리

답변

5

ViewModels에서 처리되지 않은 예외도 App.xaml.cs.에서 처리 할 수 ​​있습니다. 별 차이가 없어야합니다. App.xaml.cs는 처리되지 않은 모든 예외를 처리하는 전체 응용 프로그램의 중심점입니다.

사이드 노드 : 다른 이유로 인해 ViewModels와 Views를 다른 어셈블리로 분할하지 않는 것이 좋습니다. 이유를 설명하는 내 게시물 here을 참조하십시오.

+0

감사, Pavlo, 의견을 남겨주세요. 몇 가지 이유로 우리는 우리의 응용 프로그램을 다른 프로젝트로 나누었습니다. 뷰 및 ViewModels. 다른 프로젝트, 즉 Views에있는 app.xaml.cs에서 ViewModels 프로젝트에서 제기 된 예외를 처리하는 방법을 잘 모르겠습니다. 몇 가지 접근법을 가르쳐 주시겠습니까? –

+0

@Anil - ViewModel 클래스에서 발생하는 모든 예외는 결국 App.xaml.cs의 예외 처리기로 전달됩니다 (DispatcherUnhandledException 핸들러 및 AppDomain.CurrentDomain.UnhandledException 핸들러를 등록해야 함). –

+0

잘 작동합니다. 감사. –