Primero tiene que aislar las áreas donde pueden ocurrir errores, y son visibles para el usuario. Entonces puedes documentarlos. Es así de simple.
Bueno, simple en teoría ... en la práctica pueden ocurrir errores en todo el maldito lugar, y reportarlos puede convertir un buen código en un monstruo de registro, lanzamiento y manejo de excepciones, y pasar valores de retorno.
Entonces recomendaría un enfoque de 2 pasos. Primero es iniciar sesión, registrar lotes y lotes.
El segundo es determinar los componentes principales y sus interfaces, y definir en qué casos de errores mayores pueden encontrarse estos componentes. Luego, puede iniciar sesión de manera más visible cuando uno de estos errores (cómo maneja el error internamente depende de usted - las excepciones o los códigos de error no hacen ninguna diferencia aquí). Generalmente, un usuario verá el error e irá a los registros para obtener información más detallada.
Se utiliza el mismo enfoque para los servidores web y su ejemplo de código de error http. Si el usuario ve un 404, y lo informa como soporte, buscará en los registros los detalles de lo que estaba sucediendo, qué página se visitó, cuándo y recogerá cualquier otra información que pueda de donde sea que tenga sentido , estar en la base de datos, la red o la aplicación.