por lo que suena, los dejas activados en compilaciones de lanzamiento. de ser así, cree niveles de afirmaciones, aquellas que se habilitarán o deshabilitarán en ciertas compilaciones. entonces solo usa un nivel de afirmación.
de esta manera, no necesita rechazarlas, desactivarlas o eliminarlas para desarrollar y depurar construcciones o versiones beta.
normalmente los desactivo en lanzamiento, pero consumen una tonelada de código escrito. No creo que sea malo: sirve como documentación y exige que la interfaz se use como se pretendía. Creo que es bueno tener lo que muchos desarrolladores pueden considerar demasiadas afirmaciones, pero realmente no hay demasiadas en el panorama general porque las bases de código evolucionan y esto asegura que los programas se usen siempre como se esperaba. por lo tanto, no recomiendo eliminarlos, simplemente desactive los controles no fatales para compilaciones de versiones.
Finalmente, existen mejores enfoques que los niveles (consulte la discusión a continuación y tome lo que quiera de las respuestas de los demás), pero los niveles son una forma simple de introducir el cambio sin afectar considerablemente los programas existentes. este sería un buen enfoque para una transición a otro esquema de manejo de errores, o si estás> 98% satisfecho con lo que ya tienes.
Solía pensar en los niveles de aserciones, pero es muy sorprendente cuando un error que fue atrapado en la prueba no se detecta en la producción. Además, he descubierto que los desarrolladores generalmente no sabían qué nivel aplicar, y más o menos elegían dependiendo de su estado de ánimo ... –
@Maththieu: es más limpio usar un manejador de condición fatal designado (y un mensaje de alerta o de registro) donde sea necesario y desactivar las aserciones para producción. por supuesto, esto depende de la relación de OP de las condiciones de error fatal y cómo se ha implementado el código existente. la excepción de mi código está libre cuando sea posible; los códigos/estados de error simplemente se envían a la persona que llama cuando se detectan o se encuentran. pero puede ser un gran desastre reescribir los programas existentes, por lo que sugerí niveles como una solución que no afectaría mucho al código existente. – justin