Aquí está mi código:"control llega al final de la función no nula" de advertencia en Eclipse C++ pero no hay errores de compilación o en tiempo de ejecución
Composer& Database::GetComposer (string in_last_name)
{
for (int i = 0; i < next_slot_; i++)
{
if (composers_[i].last_name() == in_last_name)
return composers_[i];
}
}
La idea es iterar sobre una matriz de objetos compositor y vuelta una referencia al objeto cuyo campo last_name coincide con "in_last_name". Entiendo lo que me dice la advertencia, es decir, que es posible que la función no devuelva nada (si, por ejemplo, el usuario proporciona un apellido inválido). Mi pregunta es, ¿cómo puedo evitar esto? Intenté agregar "return 0" y "return NULL" después del bucle for y no compilaría. ¿Debería este método arrojar una excepción si no encuentra nada?
Debe lanzar una excepción. –
Las advertencias son realmente errores lógicos en su código. Repare todas las advertencias (y suba el nivel de advertencia a lo más alto posible (razonablemente)) –
Todavía recibo la misma advertencia incluso con un bloque try/catch arrojando una excepción estándar. – wbr