Lnbogen Challenge: refactor exception handling
Level:
3/10 at Ellenbogen’s scale.
Preface:
You have the following code:
try
{
// Some code which can throw any kind of exception
}
catch(Exception e)
{
// If e is from DataGatewayException type – throw the original exception;
// Otherwise, wrap the exception with DataGatewayException and throw it.
// In any case – this “block” will throw only DataGatewayException.
if (!(e is DataGatewayException))
throw WrapAndPublishException(e); // *
else
throw;
}
* WrapAndPublishException method returns a new object from DataGatewayException type (which wraps the original exception).
The Challenge:
Refactor the code above so it will be more readable and extendable(in case we want to re-throw other exception types as well).
Use your imagination.