none
Gestión de excepciones en métodos asíncronos RRS feed

  • Pregunta

  • Hola,

    Imaginemos que tengo un método Patata, que llama al método HacerTortilla. Además el "hacertortilla", internamente llamaría a otros como "EncenderFuego" o "PonerSarten()". Esos métodos a su vez también podrían ser asíncronos:

    void Patata()
    {
         HacerTortilla(); // Internamente inicia un proceso asíncrono
    }

    Dicho esto, me he creado un método que se llama ManageException(Exception ex). Este método hace varias cosas a nivel interno. Si quiero capturar la excepción de HacerTortilla() y todos los métodos que llama internamente, basta con poner un try/catch que "envuelva" al "hacerTortilla" o habría que poner un try/catch en cada sub-método?

    No he hecho nunca nada de esto con programación asíncrona :-P  Por otro lado, no me negaréis que he tenido imaginación para escoger los nombres de los métodos xD


    Jesús Bosch Aiguadé
    MSP - MCPD
    www.plungeinteractive.com
    http://geeks.ms/blogs/jbosch
    Twitter: @jboschaiguade
    martes, 24 de mayo de 2011 8:47

Respuestas

  • Jejeje

    Bueno, se ve que había hambre mientras escribias la pregunta ;)

    Si mi memoria no me engaña, las excepciones que se producen en un hilo de ejecución diferente (al realizar una llamada asíncrona) no se lanzan hacia el método original que invoco al método asíncrono, deberías controlarlas en cada método y crear un objeto que puedas pasar a alguna especie de controlador general de la app que se encargue de coger ese objeto y dar información al usuario sobre que ha pasado.

    Un abrazo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    • Marcado como respuesta Jesús Bosch martes, 24 de mayo de 2011 9:19
    martes, 24 de mayo de 2011 8:57

Todas las respuestas