Últimamente he estado luchando por comprender cuál es la cantidad correcta de verificación y cuáles son los métodos adecuados.
Tengo algunas preguntas al respecto:
¿Cuál es la forma correcta de verificar los errores (entrada incorrecta, estados incorrectos, etc.)? ¿Es mejor verificar explícitamente los errores o utilizar funciones como afirmaciones que se pueden optimizar a partir de su código final? Siento que verifica explícitamente el desorden de un programa con una gran cantidad de código adicional que no debería ejecutarse en la mayoría de las situaciones de todos modos, y sin mencionar que la mayoría de los errores terminan con una falla de anulación / salida. ¿Por qué saturar una función con comprobaciones explícitas solo para abortar? He buscado afirmaciones versus verificación explícita de errores y encontré poco para explicar realmente cuándo hacerlo.
La mayoría dice 'use afirmaciones para verificar errores lógicos y usa verificaciones explícitas para verificar otras fallas'. Sin embargo, esto no parece llevarnos muy lejos. Diríamos que esto es factible:
Malloc returning null, check explictly
API user inserting odd input for functions, use asserts
¿Me mejoraría esto en la comprobación de errores? ¿Que más puedo hacer? Realmente quiero mejorar y escribir mejor, código 'profesional'.
setjmp
/ longjmp
están disponibles en C, por lo que no necesita un nuevo lenguaje.