Una alternativa sería la de almacenar el valor de retorno en una variable temporal:
public bool SomeFunction()
{
bool success = true;
try
{
//somecode
}
catch(Exception ex)
{
MessageBox.Show(ex.message);
success = false;
}
return success;
}
Pero personalmente, creo que la forma en que Lo he escrito (con una declaración de catch catch) para que sea más legible. Por otro lado, si usted está esperando una excepción específica y puede que tenga varios caminos para volver éxito o no ...
try
{
DoTheImportantThing();
DoTheOtherThingThatMightFailButWeDontCare();
}
catch (DontCareAboutItException ex)
{
log.Info(ex);
}
catch (Exception ex)
{
log.Error(ex);
return false;
}
return true;
A continuación, en mi opinión es el mejor de empujar las sentencias de retorno lo más cerca del final como sea posible.
Como nota aparte, dependiendo de la aplicación, considere registrar las excepciones que detecta en lugar de solo mostrarlas al usuario. Las excepciones registradas son mucho más confiables que los recuentos del usuario de lo que sucedió.
Vea también: http://stackoverflow.com/questions/2373560/return-statements-in-catch-blocks, http: // stackoverflow.com/questions/449099/is-it-bad-practice-to-return-from-within-a-try-catch-finally-block, http://stackoverflow.com/questions/1713388/in-the- try-catch-block-is-it-bad-to-return-inside-the-catch-which-is-good-practi – outis
está bien, ¿por qué no? – Andrey