Има ли някакъв проблем с логиката за повторен опит въз основа на изключение (а не на конкретно SqlException)? Предполагам, че изключения, произтичащи от грешки в програмирането, в крайна сметка ще бъдат открити по време на фазата на тестване и тежките (като SO) изключения така или иначе няма да бъдат уловени от catch блока, така че общият блок за изключения за логиката за повторен опит може да бъде приемлива идея.
Ако не, тогава вероятно вашето решение е да опаковате ExecuteReader
би било добра идея. Като се има предвид, че това е документирано
поведение, трябва също да обърнете внимание на други изключения, които методът ExecuteReader може да хвърли - така че вероятно може да се наложи да предвидите IOException
и ObjectDisposedException
освен InvalidOperationException
.