// simplify ExtractStringArray using Try
static Either<Exception, string[]> ExtractStringArray(IQueryCollection query, string filter) =>
Try(() => query.First(x => x.Key.ToLower() == filter).Value.ToString().Split(',').ToArray())
.ToEither();
static void HandleException(Exception ex) => Console.WriteLine(ex);
var query = request.Query;
// now get result or exception (Either<...>)
var resultOrException = ExtractStringArray(query, "location");
// now execute side-effect if exception
resultOrException.IfLeft(HandleException); // side-effect (log error)
// now use result and supply default value in case of exception
result.Locations = resultOrException.IfLeft(new string[]{ });
CLICK HERE to find out more related problems solutions.