Estoy usando códigos de error para manejar errores en mi proyecto de C++. El problema es cómo devolver los códigos de error de una función que se supone que devuelve alguna variable/objeto.Cuál es el enfoque correcto para devolver códigos de error en C++
Considera:
long val = myobject.doSomething();
Aquí, myObject es un objeto de alguna clase. Si doSomething function encuentra alguna condición de error, ¿cómo debería notificar a la persona que llama (sin usar excepciones)?
soluciones posibles:
- tiene un miembro de datos (por ejemplo err_) en la clase que se puede comprobar por la persona que llama. Pero sería inseguro en una aplicación multihilo compartir el mismo objeto y llamar a la misma función.
- Usa alguna variable de error global, de nuevo el mismo problema en un entorno de subprocesos múltiples.
¿Cómo puedo notificar a la persona que llama acerca de alguna condición de error?
Relacionado: [Error de resultado y código de la convención C++ int foo (...)] (http://stackoverflow.com/questions/1882047/convention-result-and-code-error-c-int-foo) –
Usted ' Acabo de descubrir el motivo # 1 para las excepciones, por cierto. ¿Pero por qué también está rechazando la otra solución común para informar errores, que es devolver un código de error y usar parámetros externos para los resultados de las funciones? – MSalters
@MSalters No estoy usando el otro enfoque que mencionaste porque parte del código ya está hecho y eso se agregaría a la inconsistencia en el estilo – Jeet