Sorry if my question is stupid, but I have this kind of code :
public Object1 Method1(Object2 parameter)
{
try
{
return this.linkToMyServer.Method1(parameter);
}
catch (Exception e)
{
this.Logger(e);
}
return null;
}
public Object3 Method2(Object4 parameter)
{
try
{
return this.linkToMyServer.Method2(parameter);
}
catch (Exception e)
{
this.Logger(e);
}
return null;
}
/* ... */
public ObjectXX Method50(ObjectXY parameter)
{
try
{
return this.linkToMyServer.Method50(parameter);
}
catch (Exception e)
{
this.Logger(e);
}
return null;
}
I think you see the pattern. Is there a nice way to have only one try catch and to pass a generic method in this try catch ?
Instinctively I'd use a delegate, but delegates have to have the same signature right ?
Thanks in advance.
Regards.
Whenever you see code like this you can apply Template Method Pattern.
May be something like this:
private TResult ExecuteWithExceptionHandling<TParam, TResult>(TParam parameter, Func<TParam, TResult> func)
{
try
{
return func(parameter);
}
catch (Exception e)
{
this.Logger(e);
}
return default(TResult);
}
public Object1 Method1(Object2 parameter)
{
return ExecuteWithExceptionHandling(parameter, linkToMyServer.Method1);
}
public Object3 Method2(Object4 parameter)
{
return ExecuteWithExceptionHandling(parameter, linkToMyServer.Method2);
}
And so on...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With