Une alternative serait de stocker la valeur de retour dans une variable temporaire:
public bool SomeFunction()
{
bool success = true;
try
{
//somecode
}
catch(Exception ex)
{
MessageBox.Show(ex.message);
success = false;
}
return success;
}
Mais personnellement, je trouve la façon dont vous l'ai écrit (avec un fourre-tout de l'instruction catch) pour être plus lisible. D'autre part, si vous vous attendez à l'exception spécifiques et vous pourriez avoir de multiples chemins pour revenir succès ou pas...
try
{
DoTheImportantThing();
DoTheOtherThingThatMightFailButWeDontCare();
}
catch (DontCareAboutItException ex)
{
log.Info(ex);
}
catch (Exception ex)
{
log.Error(ex);
return false;
}
return true;
Alors à mon avis, vous êtes mieux de pousser le retour des déclarations aussi proche de la fin que possible.
Comme une note de côté, en fonction de l'application, pensez à l'enregistrement de l'exception que vous attraper plutôt que de simplement montrer à l'utilisateur. Exceptions enregistrées sont beaucoup plus fiables que de l'utilisateur, raconte ce qui s'est passé.