Sometimes you need to implement some sort of retry logic if an error occurs in a c# program.
Existing libraries for retry and fault handling:
Polly
http://www.thepollyproject.org/
CircuitBreaker.Net
https://github.com/alexandrnikitin/CircuitBreaker.Net
Read more about the related Circuit Breaker pattern:
CircuitBreaker
http://martinfowler.com/bliki/CircuitBreaker.html
Circuit Breaker Pattern
https://msdn.microsoft.com/en-us/library/dn589784.aspx
Error handling and policies in general:
https://en.wikipedia.org/wiki/Exception_handling#Restarts_separate_mechanism_from_policy
https://docs.microsoft.com/en-us/dotnet/standard/exceptions/
https://stackify.com/csharp-exception-handling-best-practices/