Durante medio año de Winforms-MVP diseñé la siguiente estrategia de manejo de excepciones. Tengo una clase de presentación abstracta base con varios métodos de ejecución que toman un delegado como parámetro de entrada (las firmas varían). La interacción entre la Vista y el Presentador se realiza a través de eventos (entrada) definidos en IView y al establecer propiedades públicas (salida) o métodos de llamadas definidos en la IView también e implementados por la Vista. Cada controlador de eventos en el presentador llama a uno de los métodos de ejecución proporcionándole una realización concreta.Informar al usuario final de las excepciones en Winforms-MVP y WPF-MVVM
En el método de ejecución tengo varios bloques catch para excepciones muy definidas que pueden ocurrir (principalmente debido a algunos problemas en los componentes externos que se usan ampliamente). Cada una de estas excepciones detiene la ejecución de la operación actual, se registra y se muestra al usuario con una explicación significativa llamando a los métodos de View.
No hace mucho tiempo (de hecho MUY no hace mucho tiempo) Empecé a aprender WPF-MVVM, que a primera vista parece tener mucho en común con MVP. Estaba buscando algún consejo útil sobre la estrategia de manejo de excepciones allí (principalmente informar al usuario sobre los problemas), pero estas preguntas son difíciles de buscar en general, es decir, se dice mucho, pero principalmente en principio. He encontrado más de 20 ejemplos de "manejo" de excepciones no controladas en la aplicación.xaml.cs, todo es muy lindo, pero díganlo con sinceridad: si conoce las excepciones exactas que pueden bloquear su aplicación, ¿no las manejará? un poco antes (incluso si se verá obligado a cerrar su aplicación)? No soy fan de atrapar todas las excepciones posibles. Muchas de las excepciones causadas por los problemas de red, la falta de disponibilidad temporal de la base de datos, etc. deben manejarse sin cerrar la aplicación sin iconos de error que den al usuario común la oportunidad de repetir su solicitud.
Así que, como experimento, probé casi lo mismo que describí anteriormente: he creado eventos en ViewModel para la transición de excepciones y la vista suscrita. Pero, francamente, de esta manera me da escalofríos.
(Fue un discurso muy largo, lo sé) La pregunta: ¿cómo se manejan las excepciones en lo que se refiere a informar al usuario cuando se usa MVVM? No, no estoy interesado en la validación de datos solo por ahora. Cualquier crítica y/o consejo sobre MVP también es bienvenido.
¿Qué parte le preocupa? ¿Atrapa temprano o atrapa tarde? Si no cogió temprano, ¿cree que tiene algo que ver con WPF/MVVM? –