El catch
se llamará la excepción (y cualquier otro que ocurre). Dicho esto, trato de evitar escribir código como este cuando sea posible.
Personalmente, veo pocas razones para tener el manejo de excepciones (catch) para una excepción lanzada en el mismo ámbito. Si puede manejar su error en su método, ponga también el manejo de excepciones (es decir, el registro) directamente en el bloque try.
El uso de catch
es más útil, IMO, para capturar las excepciones lanzadas por los métodos dentro de su bloque try
. Esto sería más útil, por ejemplo, si su sección // do stuff
llamó a un método que generó una excepción.
Además, recomiendo no detectar todas las excepciones (Exception e
), sino más bien los tipos específicos de excepciones que puede manejar correctamente. La única excepción a esto sería si está volviendo a lanzar la excepción dentro de su captura, es decir, si la usa para fines de registro, pero todavía deja que suba la pila de llamadas.
Cualquier cosa que haría en la captura que puede hacer en el resto que plantea la excepción. Solo debe plantear excepciones en circunstancias excepcionales. Como comentario aparte, no debes acostumbrarte a llamar a los objetos de excepción 'e'. Esto chocará con el parámetro 'EventArgs' en los controladores de eventos. –
@Philip: "Cualquier cosa que harías en la captura que puedas hacer en el resto de la excepción". - Ese fue mi punto :) En cuanto a tus otros argumentos, estoy de acuerdo con un punto, pero personalmente no tengo problemas para nombrar objetos de excepción e (aunque suelo usar un nombre más significativo), ya que raramente se usan con EventArgs directamente . –
¿Por qué los votos a favor? Sólo curiosidad;) –