Mi clase de modelo de vista tiene un método (no estoy seguro si es una buena práctica o si se supone que los modelos de vista son estrictamente mecanismos de propiedad y cambio de propiedad) que se conecta a un servicio. Por supuesto, quiero manejar cualquier posible excepción de WCF al conectarme o desconectarme.¿Dónde puedo detectar Excepciones en MVVM?
Usemos el punto final no encontrado como ejemplo, considerando que es una excepción que quisiera llamar la atención del usuario. Considere el ejemplo de código en bruto:
public void Connect()
{
ServiceClient proxy = null;
try
{
proxy = new ServiceClient();
proxy.Subscribe();
// ...
}
catch(EndpointNotFoundException)
{
// should I do something here?
}
// .. other WCF related exception catches and a finally
}
¿Se considera una buena práctica para invocar tal System.Windows.MessageBox.Show() directamente en la captura o debería tal vez volver a lanzar la excepción por lo que otra capa de mi aplicación WPF atrapa ? Si es así, ¿dónde está el lugar ideal para atrapar tal excepción?
¿Qué debe hacer exactamente el usuario con respecto a esta excepción? Debe decirle al usuario todo lo que necesita para poder "manejar" correctamente esta excepción. Si no hay nada que el usuario pueda hacer al respecto, entonces no le diga nada al usuario, tal vez, "Lo siento, pero algo anda mal". –
@John, el usuario no necesita salvar el mundo. Solo necesito presentarle al usuario que el extremo distante no está disponible. Es por eso que menciono un MessageBox. Esta pregunta no se trata de lo que debo decirle al usuario, quiero saber cómo lidiar elegantemente con las excepciones en el patrón que estoy usando. – jlafay
Manejo las fallas de WCF de esta manera: [MSDN] (http://msdn.microsoft.com/en-us/library/dd470096%28VS.96%29.aspx) – Gabe