¿Tiene alguna guía de equipo con respecto a las excepciones? [cerrado]


8

Mi equipo recientemente heredó un proyecto de un equipo donde la cantidad de desarrolladores se redujo tanto que tuvieron que descargar algo de trabajo. Uno de los proyectos que heredamos fue un proyecto lleno de código anidado y un manejo de excepciones horrible (las excepciones se manejaron en efecto como declaraciones goto y, por lo tanto, se usaron como parte del flujo normal del programa).

En general, era una bola de código peluda que alguien había estado tosiendo durante unos años.

Ahora hemos estado implementando algunas pautas de equipo durante bastante tiempo, pero todos los aspectos relacionados con las estructuras de los objetos, los estilos de codificación y demás. Pero no hemos cubierto el manejo de excepciones.

Entonces, me pregunto si tiene pautas en sus equipos con respecto al manejo de excepciones, y si es así, ¿cómo las aplica?


¿Te refieres a la aplicación social o la aplicación tecnológica? Hay muchas herramientas de análisis de código estático para detectar patrones de excepción abusados.
MatthewMartin

Bueno los dos de verdad.
Morten

Puede ser más sencillo refactorizar el código para verificar las condiciones previas primero y regresar antes de la función si no se cumple alguna condición previa. Además, varios gurús prominentes consideran que finally(la lógica de reversión) es la parte más valiosa de un sistema de manejo de excepciones.
rwong

Respuestas:


4

Aunque no son pautas oficiales en ningún equipo en el que he estado, creo que las excepciones solo deben usarse para condiciones verdaderamente excepcionales, o cuando absolutamente (por alguna razón) tiene que levantar las manos y dejar que la persona que llama ( o burbujee desde su punto actual, potencialmente hasta el usuario) sepa que no hay absolutamente ninguna manera de que un componente en particular pueda funcionar bajo las condiciones actuales y que no sea posible recuperarse sin algún tipo de intervención externa (otro módulo o usuario) .


1

No tenemos reglas específicas para el manejo de excepciones para nuestro equipo, excepto las habituales: no use excepciones para el comportamiento 'normal', no se trague silenciosamente excepciones, etc.

El análisis estático puede ayudarlo a detectar algunos de ellos (según el idioma que utilice), pero estará más seguro con las revisiones de código.


1

Actualmente no tenemos pautas explícitas, principalmente porque nadie en mi equipo lo hace mal. (A diferencia de muchos otros temas, existe un consenso general sobre cuándo y cómo se deben utilizar las excepciones)

Pero definitivamente los implementaría el mismo día que veo una excepción abusada como un goto.


0

Creo que las excepciones deberían ser excepciones. Creo que es abusivo y genera gastos generales al usar excepciones como flujo de trabajo en su código. Por lo tanto, manténgalos detallados y úselos solo cuando ocurra algo inesperado.

Nota: bandeja para evitar los errores más comunes, como no pasar la base de datos de conexión a una función, o cosas por el estilo. En cambio, úselos cuando la clave principal no exista y la necesite para hacer algo.


0

Me da pena que haya tenido que heredar el código de personas que abusan de las excepciones para ser declaraciones tipo goto.

Siempre intento atraparlos cuando puede ocurrir cualquier entrada del usuario o algo más allá de mi control (por ejemplo: IOExceptions), pero cualquier cosa que pueda ser un error de codificación (por ejemplo: NullPointerException) es algo que trataría de atrapar con afirmaciones al principio del desarrollo.

El rendimiento de ese tipo de codificación es un gran negativo. Me pregunto si la compañía se estaba reduciendo debido a que los desarrolladores terribles se metieron en un desastre más allá de la comprensión ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.