Finns det något problem med att försöka igen logik baserat på något undantag (och inte på specifik SqlException)? Jag antar att undantag som uppstår på grund av programmeringsfel så småningom skulle upptäckas under testfasen och allvarliga (som SO) undantag skulle ändå inte fångas upp av fångstblock, så ett generiskt undantagsblock för logik för att försöka igen kan vara en acceptabel idé.
Om inte, är det troligen din lösning att linda ExecuteReader skulle vara en bra idé. Med tanke på att detta är dokumenterat
beteende, måste du också vara uppmärksam på andra undantag som ExecuteReader-metoden kan ge - så du kan förmodligen behöva förutse IOException och ObjectDisposedException förutom InvalidOperationException .