2008-12-15 7 views
10

Me dieron la tarea de escribir las pautas de codificación para mi equipo, y fue genial hasta que mi gerente me pidió que escribiera una explicación de Por qué es importante el manejo de errores.¿Por qué es importante el manejo de errores?

Lo sé instintivamente, pero ¿cómo puedo expresar esto en palabras?

Intenté googlearlo primero pero salió vacío, así que ahora pregunto a mis compañeros asistentes de codificación.

Respuesta

14

mi humilde opinión ... la mayoría de los programas son muy grandes, muy complejo y escrito por varias personas. Esta combinación de factores casi siempre conduce a algún tipo de error de software. No es que los programadores sean maliciosos, estúpidos o perezosos ... es solo que en la prisa por cumplir un plazo, a menudo no prevemos todo lo que un usuario puede hacer con nuestros programas y algo va a suceder.

En este sentido, el manejo de errores sirve para dos propósitos.

  • En primer lugar, permite al usuario saber, de una manera relativamente amable, que algo ha ido mal y que debe ponerse en contacto con el departamento de asistencia técnica o que alguien de soporte técnico ha sido notificado. Como todos sabemos, hay una ENORME diferencia entre recibir un aviso bastante desagradable, tecnológicamente acribillado que dice algo así como "Objeto no establecido como referencia de un objeto", etc. ... y recibir una bonita ventana de tipo emergente que dice "Ha habido un problema. Póngase en contacto con el servicio de asistencia técnica ".

  • En segundo lugar, permite al programador poner algunas sutilezas para ayudar en la depuración de problemas. Por ejemplo ... en mi código, generalmente escribo un controlador de error personalizado que toma varios parámetros y devuelve un bonito mensaje formateado que puede enviarse por correo electrónico al servicio de asistencia, guardado en un registro de eventos, escrito en un registro archivo, etc. El mensaje de error contendrá tanta información como pueda incluir allí para ayudarme a descubrir qué sucedió, seguimientos de pila, parámetros de función, llamadas a bases de datos ... lo que sea. Me gustan los mensajes de error detallados para ayudarme a descubrir qué sucedió realmente. El usuario nunca tiene que ver nada de eso, recibe el mensaje agradable y amigable que se encuentra arriba, y le hace saber que alguien puede descubrir qué está pasando.

+0

Bien explicado, gracias. – Nik

1

Por qué el manejo de errores es importante.

Por qué puede pasar si no lo hace.

Si eres capaz de escribir pautas de codificación, ¿deberías ser capaz de manejar esto, seguramente?

+0

Tal vez, Paul. Pero a veces, incluso los mejores de nosotros tenemos dudas sobre cómo decir algo. Y StackOverflow es siempre el MEJOR lugar para hacer preguntas relacionadas con la codificación. –

+1

Sí, estoy enfermo, así que estoy gruñón hoy, pero a veces siento que los interrogadores pueden poner un poco de esfuerzo en primer lugar ... –

3

El manejo de errores es importante porque facilita a los usuarios finales de su código el uso correcto. Otro tema importante es que hace que su código sea más fácil de mantener. El manejo de errores facilita la inserción de especificaciones de entrada en el código, por lo que no tiene que buscar el diseño cuando escribe y luego mantiene el código.

1

Primero pregunto ¿es importante?

que he visto (feo) código donde algunos errores fueron ignoradas (por ejemplo, referencia nula)

Entonces, ¿qué tipo de errores son importantes para manejar?

Hay una gran diferencia entre System.IO.FileNotFoundException, System.Data.SqlClient.SqlException y System.ApplicationException

2

Es bastante sencillo de explicar a un administrador laico:

Si su empuñadura sus errores, su programa es probable que continúe funcionando después de un error, el cliente probablemente pueda continuar trabajando, y se puede proporcionar una informe exactamente cómo ocurrió el error para que pueda solucionarlo.

Si no maneja sus errores, su programa puede bloquearse, perderá todos sus clientes y probablemente no sepa dónde ocurrió el error (siempre que no maneje su excepción fatal con un seguimiento de pila) .

Cuestiones relacionadas