Lección aplicada: Erlang / AXD301 — "let it crash" con supervisión: los errores ocurren; lo que importa es recuperarse tan rápido que nadie lo note.
Contexto. Las operaciones de red corren en un hilo aparte del de Tkinter. Una excepción inesperada en ese hilo puede dejar la UI en estado inconsistente (botones deshabilitados, spinner eterno) sin mensaje claro.
Qué hacer. Supervisar el hilo de operaciones: toda excepción no prevista se captura, se loggea estructurada, la UI vuelve a estado consistente (controles re-habilitados) y se ofrece reintentar. Nunca traceback silencioso ni widget colgado.
Criterio de aceptación. Test con FakeOps que lanza una excepción arbitraria; el widget queda usable y el error queda loggeado.
Lección aplicada: Erlang / AXD301 — "let it crash" con supervisión: los errores ocurren; lo que importa es recuperarse tan rápido que nadie lo note.
Contexto. Las operaciones de red corren en un hilo aparte del de Tkinter. Una excepción inesperada en ese hilo puede dejar la UI en estado inconsistente (botones deshabilitados, spinner eterno) sin mensaje claro.
Qué hacer. Supervisar el hilo de operaciones: toda excepción no prevista se captura, se loggea estructurada, la UI vuelve a estado consistente (controles re-habilitados) y se ofrece reintentar. Nunca traceback silencioso ni widget colgado.
Criterio de aceptación. Test con
FakeOpsque lanza una excepción arbitraria; el widget queda usable y el error queda loggeado.