años, escribimos un marco de sistema de control y los objetos atrapados Agente excepciones de tiempo de ejecución, que registra si podían y continua.
Sí nos atrapado tiempo de ejecución excepciones incluyendo OutOfMemory en nuestro código de la arquitectura (y obligado a un GC, y es sorprendente lo bien que mantienen código de ejecución incluso bastante permeable.) Tuvimos código que estaba haciendo cosas muy matemáticos que implican el verdadero mundo; y de vez en cuando, un Not-A-Number entraba debido a pequeños errores de redondeo y también lo solucionaba bien.
Así, en el marco/"no debe salir" código creo que puede ser justificable. Y cuando funciona, es genial.
El código era bastante sólido, pero corrió el hardware y el hardware tiende a dar respuestas screwy veces.
que fue diseñado para funcionar sin intervención humana durante meses a la vez. Funcionó extremadamente bien en nuestras pruebas.
Como parte del código de recuperación de errores, se podría recurrir a reiniciar todo el edificio utilizando la capacidad del UPS para que se apague en N minutos y encienda en M minutos.
veces fallos de hardware necesario apagar y encender :)
Si mal no recuerdo, el último recurso después de un ciclo de encendido sin éxito era que el envío de un correo electrónico a sus propietarios, diciendo "Traté de prepararme y puedo' t; el problema está en el subsistema XYZ ", e incluyó un enlace para enviarnos una llamada de soporte.
Por desgracia, el proyecto se puso en lata antes de que pudiera llegar a ser consciente de sí mismo:)>
O atrape el registro y vuelva a lanzar. –
tiene perfecto sentido, debería haber vuelto a lo básico. Muchas veces los patrones se vuelven tan rígidos que los desarrolladores tienden a tomarlos como Dogma. Siempre me han dicho que RuntimeExceptions es el resultado de a) Errores de programación b) Fallas catastróficas de las que no se puede recuperar. En el caso (a), debe asegurarse de que todo esté arreglado antes de que el producto entre en funcionamiento y "nunca" ocurrirá. En cuanto al caso (b), el usuario debería ver que un mensaje más higienizado tiene mucho sentido capturar y procesar. Ahora me pregunto por qué necesitamos RuntimeExceptions, tal vez un tema para otra discusión ;-) – VDev
Heh, creo que es más una razón para hacer que * todas * las excepciones sean excepciones de tiempo de ejecución. Hay muchos programadores que atraparán e ignorarán las excepciones marcadas, solo para que desaparezcan. – kdgregory