The SignalR docs on streaming state:
Wrap logic in a
try...catchstatement. Complete theChannelin afinallyblock. If you want to flow an error, capture it inside thecatchblock and write it in thefinallyblock.
They then proceed to give an example that goes through these convolutions for no apparent gain. Why is this? What difference does it make whether one captures an exception and completes the channel from the finally block versus completing then and there in the catch block?