nazar9318 / taller1-2c2020-TP1

0 stars 0 forks source link

Estás silenciando los errores. #1

Open fedemgp opened 3 years ago

fedemgp commented 3 years ago

https://github.com/nazar9318/taller1-2c2020-TP1/blob/a61b543a3d047f948c663c43f2d1376f00826091/client.c#L5-L7

Si algo falla deberías reportar el error, liberar los recursos correspondientes y abortar la ejecución. Este código no es robusto.

fedemgp commented 3 years ago

Este patrón se repite a lo largo de todo el trabajo. Revisar los lugares donde las cosas pueden fallar y actuar acorde a esto.

nazar9318 commented 3 years ago

Pregunta, acá estamos en un main, ¿es correcto chequear los errores en un main? ¿Debería hacerlo dentro de las funciones ejecutarPrograma y destruirUsuario? Saludos.

fedemgp commented 3 years ago

es completamente válido chequear errores en el main. En un mundo ideal, vos podrías tener un main como el siguiente:

int main(int argc, const char *argv[]) {
   if (__check_arguments(argc, argv) != 0) {
        // error
   }
   client_t client;
   if (client_init(&client, argv) != 0)
      // error
   }
   if (client_run(&client) != 0) {
      // libero memoria y retorno con error
   }
   if (client_destroy(&client) != 0) {
       // otro error
   }
   return 0;
}