Últimamente he estado luchando para entender cuál es la cantidad correcta de verificación y cuáles son los métodos adecuados.
Tengo algunas preguntas sobre esto:
¿Cuál es la forma correcta de verificar errores (entrada incorrecta, estados defectuosos, etc.)? ¿Es mejor verificar explícitamente si hay errores o usar funciones como aserciones que pueden optimizarse con su código final? Siento que al revisar de forma explícita un programa con un montón de código extra 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 un error de cancelación / salida. ¿Por qué desordenar una función con controles explícitos solo para abortar? He buscado afirmaciones frente a la comprobación explícita de errores y he encontrado poco para explicar realmente cuándo hacer cualquiera de las dos cosas.
La mayoría dice 'usa afirmaciones para verificar errores lógicos y usa comprobaciones explícitas para verificar otras fallas'. Aunque 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
¿Esto me haría mejor en la comprobación de errores? ¿Que más puedo hacer? Tengo muchas ganas de mejorar y escribir mejor, código 'profesional'.