C'è qualche problema con la logica dei tentativi basata su qualsiasi eccezione (e non su SqlException specifica)? Presumo che le eccezioni risultanti a causa di errori di programmazione verrebbero eventualmente scoperte durante la fase di test e le eccezioni gravi (come SO) non verrebbero comunque rilevate dal blocco catch, quindi un blocco di eccezioni generico per la logica dei tentativi può essere un'idea accettabile.
In caso contrario, probabilmente la tua soluzione per avvolgere ExecuteReader
sarebbe una buona idea. Considerando che questo è documentato
comportamento, devi anche prestare attenzione ad altre eccezioni che il metodo ExecuteReader potrebbe generare, quindi probabilmente potresti dover anticipare IOException
e ObjectDisposedException
a parte InvalidOperationException
.