Continuando con nuestras serie de post acerca de WF, en esta ocasión nos vamos a enfocar en el manejo de excepciones dentro del workflow. Para esto, vamos a utilizar el workflow del post anterior para manejar las excepciones.
Provocando el error en el workflow
Nuestro ejemplo asume que la lista que viene como parámetro de entrada siempre viene inicializada, es decir ya esta instanciada, pero que pasaría si nos envía una lista nula? Para ver que pasaría vamos a cambiar el código en el programa de consola de la siguiente forma:
Ahora si ejecutamos la aplicación, vamos a obtener el siguiente mensaje de error:
Como podemos ver en la figura anterior, la excepción se lanzo desde el workflow y nosotros no tenemos la más mínima idea de lo que puede estar ocurriendo. Aquí es donde entra el manejo de excepciones.
Agregando Excepciones al Workflow
Vamos a manejar la excepción anterior dentro del workflow utilizando las actividades que workflow foundation ya tiene construidas para tal propósito. Las mismas se pueden ver en la siguiente figura:
Primero vamos a agregar una figura TryCatch para meter nuestro código dentro de este. Luego dentro de la secuencia del try vamos a agregar nuestro código para manipular las colecciones.
Como vemos en la figura anterior tenemos un error en el workflow – signo de admiración – lo cual es provocado porque no hemos configurado el catch del bloque para el manejo de errores. Para reparar este problema vamos a agregar una excepción genérica del tipo System.Exception para procesar todos los errores que se den dentro del bloque en un solo lugar.
Luego hacemos click en la superficie del workflow y nos queda a disposición el bloque de catch para manejar la excepción. En la parte derecha del bloque esta el nombre de la instancia en donde vendrá encapsulada la excepción.
Para este ejemplo simplemente vamos a relanzar la excepción y vamos a poner un mensaje un poco más “legible” para que a la hora de manejarlo del lado del cliente se tenga una mejor noción del problema. Para esto vamos a agregar una figura de rethrow y la vamos a configurar con la instanciación de una nueva excepción y de un mensaje indicando el problema de forma general.
Para esto vamos a ir a las propiedades de la figura rethrow y le vamos a agregar el siguiente código.
Ahora nuestro workflow lucirá de la siguiente manera.
El siguiente paso es manejar la excepción del lado del programa para esto vamos a agregar el siguiente código del cliente de la consola.
Cuando ejecutamos el código anterior vamos a obtener el siguiente resultado.
1 comentario:
hola quisiera el codigo de descargas musica
Publicar un comentario