Tengo una clase con varios métodos y quiero tener un controlador de excepción para todos ellos. Existen muchos de estos métodos y tienen diferentes parámetros, que sería feo escribir try/catch para cada uno de ellos.One Exception handler para todas las excepciones de una CLASE
Quizás conozca una forma en la que pueda hacerlo con un manejador de excepción único en su clase, que se encargará de todos ellos.
ACTUALIZACIÓN:
Muchos me preguntan por qué. La razón es que estoy llamando a una fuente de datos con varios métodos. así que mi clase tiene funciones getData1, gedData2, getData3, getData4, ...., getDataN. El problema es que no hay forma de verificar si la conexión aún está abierta y crear una nueva conexión es muy costoso. Así que estoy tratando de reutilizar la conexión y si la conexión en la próxima llamada ha fallado, la veré, volveré a conectar e intentaré de nuevo. Es por eso que necesito este try/catch all block.
Para hacer esto para todas las funciones:
try{
datasource.getData()
}
catch(ConnectionException)
{
datasource.Connect();
datasource.getData()
}
Gracias
Sé que es una vieja pregunta, pero quería decir que aunque estoy básicamente de acuerdo con las respuestas a continuación, que se presentaron el día en que se formuló la pregunta, hay momentos en que esta capacidad sería muy útil. Husayt describió uno arriba y encontré esta pregunta porque tengo otro escenario. A pesar de que la respuesta de Jack Allan no funciona para mi escenario, lo voté por encima porque es útil en otras situaciones y es muy inteligente, en mi humilde opinión. Dicho esto, antes de usar la "solución" de Jack, asegúrese de que no haya otra forma de estructurar su código para evitar la necesidad de esto por completo. –
No existe tal mecanismo, ni debería haberlo, en mi humilde opinión. No es coherente con la forma en que se pasa el flujo de control. No importa que lo que tienes que hacer sea "feo". No importa que la solución que haya hecho requiera escribir un código adicional. Lo que importa es que pueda escribir software que sea fácil de entender y mantener más tarde, cuando usted (u otra persona) haya olvidado los detalles originales. Si un método necesita hacer algo cuando ocurre una excepción, entonces DEBE haber algo en el método que indique qué hacer. Ésto es una cosa buena. – ToolmakerSteve
Por cierto, he votado a favor la pregunta, porque creo que esta es una GRAN pregunta. Es legítimo, y útil para otros, QUERER hacer esto. Comprender por qué no hay una manera de hacer esto, y entender lo que se debe hacer (lo que ya hiciste, en tu pregunta, aunque no te gustó el resultado), será útil para los demás. – ToolmakerSteve