What strategy do you use to give to the user the reason why a certain method “failed”
Exemple:
public List<Balance> GetBalanceFinale(Periode periode)
{
if (periode == null || periode.DateStart >= DateTime.Now || isBalanceFinished(periode.PeriodeID))
return null;
//My other code...
}
I want to tell the user which of the steps went wrong. I don’t want to use a messagebox in such class. I can’t return the description of the failure because I already return something.
What do you usally do? Any advice? Thanks!
I am assuming you don’t want to throw an exception otherwise you would’ve already done that. Something like an alert / warning without stopping execution of the program. In that case, you can still use an exception, just don’t throw it, instead pass it as an out parameter or put it somewhere where the user can access it if desired. If that seems over the top then just use a message instead.
Also framing it as a ‘Try’ method might be a good idea. It makes it very clear that the method is prone to failure under certain conditions.
These are all different options:
These first two above are my two preferred approaches. The following are possibilities as well, however they are somewhat non-standard:
I think the ‘Try’ strategy makes the most sense when you consider how it will be used: