LINQ method chaining and granular error handling

Posted by Clafou on Stack Overflow See other posts from Stack Overflow or by Clafou
Published on 2012-06-07T10:15:23Z Indexed on 2012/06/07 10:40 UTC
Read the original article Hit count: 321

Filed under:
|
|
|

I have a method which can be written pretty neatly through method chaining:

return viewer.ServerReport.GetParameters()
    .Single(p => p.Name == Convention.Ssrs.RegionParamName)
    .ValidValues
    .Select(v => v.Value);

However I'd like to be able to do some checks at each point as I wish to provide helpful diagnostics information if any of the chained methods returns unexpected results.

To achieve this, I need to break up all my chaining and follow each call with an if block. It makes the code a lot less readable.

Ideally I'd like to be able to weave in some chained method calls which would allow me to handle unexpected outcomes at each point (e.g. throw a meaningful exception such as new ConventionException("The report contains no parameter") if the first method returns an empty collection). Can anyone suggest a simple way to achieve such a thing?

© Stack Overflow or respective owner

Related posts about c#

Related posts about LINQ