В код инициализации App () я включаю универсальный обработчик
UnhandledException += Application_UnhandledException;
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
Debugger.Break();
}
У меня есть 2 экрана, которые работают нормально, но при быстрой навигации назад и вперед между двумя экранами несколько раз (варьируетсямежду 7 и 12) Я достигаю этой точки останова за исключением
{System.Windows.ApplicationUnhandledExceptionEventArgs} base {System.EventArgs}: {System.Windows.ApplicationUnhandledExceptionEventArgs}
ExceptionObject: {System.ArgumentException: Value does not fall within the expected range.}
Handled: false
, и если я удаляю исключение UnhandledException и устанавливаю Отладчик на прерывание необработанным, я получаю следующее:
Unhandled Error in Silverlight Application
Code: 4004
Category: ManagedRuntimeError
Message: System.Windows.Markup.XamlParseException: 2028 An error has occurred. [Line: 0 Position: 0] ---> System.ArgumentException: [Arg_ArgumentException]
Arguments: Debugging resource strings are unavailable.
Often the key and arguments provide sufficient information to diagnose the problem.
See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.60531.0&File=mscorlib.dll&Key=Arg_ArgumentException
at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
at MS.Internal.XcpImports.Collection_AddValue[T](PresentationFrameworkCollection`1 collection
даже если я установлю e.handled = true
, мое приложение вылетает.
Важное примечание:
Приложение в среде MVVM работает в течение 99,9% времени, перемещаясь между десятками экранов,Только один пользователь сообщил о возможности сбоя приложения путем быстрой навигации между двумя экранами, и только после примерно 10 попыток туда-сюда
Мои вопросы:
Любой способ определить, что являетсяВызывая это?
Есть ли способ предотвратить это?
Как лучше всего исправить эту ошибку?