2012-06-19 9 views
5

¿En qué situación específica es aceptable (o incluso recomendado) para presentar a los usuarios finales con una StackTrace a su interfaz de usuario en un sistema de producción.* hacer * mostramos stacktraces sobre sistemas de producción

Hay una gran cantidad de sitios web y artículos SO en los que la gente pregunta si deberían mostrar StackTraces a un usuario final. No en vano, las respuestas son un rotundo "¡No!".

Por ejemplo:

Sin embargo, recientemente he tenido una conversación con otro desarrollador donde pasé una buena cantidad de tiempo posturing por qué stacktraces shou No se pasará al usuario a través de la IU. Esa discusión me hizo retroceder y revisar uno de mis inquilinos fundamentales (absolutos): , el usuario nunca verá un StackTrace sin procesar en la producción.

No pude encontrar un solo convincente reason. Sin embargo, estoy seguro de que hay un caso de uso válido, y me gustaría entenderlo o sentirme cómodo continuando aferrándome a mi absoluto inquilino.

Respuesta

6

No lo hace, simplemente no son útiles para un usuario.

Los usuarios reciben mensajes. Los desarrolladores obtienen rastros de pila, ya sea en los registros, un correo electrónico, una cola, quizás el HTML renderizado cuando se ejecuta localmente/internamente, etc.

1

Aquí, en mi oficina con muchos proyectos internos diferentes, me beneficia ver los rastros de pila que mis compañeros de trabajo en otros departamentos ven cuando se bloquean mis programas. Simplemente no son lo suficientemente maliciosos o conocedores como para saber lo que está pasando, de lo contrario estarían trabajando conmigo. También me da un período de ventana para interrogar al usuario para que tal vez determine lo que estaban haciendo (mientras todavía está fresco en sus mentes). Si el seguimiento de la pila se ha suprimido o si se ha implementado algún otro tratamiento de error bonito (pero oculto), entonces es posible que no sepa cómo sucedió un error que no sea a través de un seguimiento de la pila.

1

en proyectos de código abierto o donde tiene el modo de depuración activado. Tal vez el usuario esté usando la aplicación para aprender cómo funciona la tecnología para hacer una aplicación similar, o tal vez planean contribuir a ella por sí mismos.

Hay muchos tipos diferentes de usuarios. Creo que permitirles activar esta opción es bueno, pero no debería ser tan fácil donde tu promedio de joe podría encender stacktraces por accidente.

0

El seguimiento de la pila debe estar disponible para el usuario cuando se bloquea la aplicación, porque un seguimiento de la pila generalmente identifica el error que causa el bloqueo, y puede haber un trabajo disponible. La solución alternativa obviamente solo funciona si la falla es causada por el error que persigue el problema; de lo contrario, intentarlo es solo perder el tiempo.

Una falla también puede ser causada por un error en algo que el usuario necesita actualizar, p. controlador de gráficos.En este caso, el seguimiento de la pila generalmente contiene el nombre del controlador de gráficos, como atiumdag.dll.

Imaginemos:

Sin Seguimiento de la pila:

cliente: me sale un cuadro de mensaje que dice "el programa dejó de funcionar".

Soporte: Pruebe esto.

Cliente: No, no ayuda.

Soporte: Pruebe esto.

Cliente: No, no ayuda.

Soporte: Pruebe esto.

Cliente: No, no ayuda.

Soporte: Pruebe esto.

Cliente: No, no ayuda.

Con seguimiento de la pila:

cliente: me sale un cuadro de mensaje que dice "el programa dejó de funcionar".

Soporte: haga clic en el botón "detalles" y envíeme el seguimiento de la pila.

cliente: (envía el seguimiento de pila)

Soporte: Esto es causado por un fallo conocido en la aplicación, que se desencadena por la característica X cuando la aplicación se instala en una ruta no predeterminada. Se solucionará en la próxima versión, que se lanzará el próximo año. Sin embargo, puede solucionarlo deshabilitando la característica X o reinstalando la aplicación en la ruta de instalación predeterminada.

Cuestiones relacionadas