Có vấn đề gì với việc thử lại logic dựa trên bất kỳ ngoại lệ nào (và không phải trên SqlException cụ thể) không? Tôi giả định rằng các ngoại lệ do lỗi lập trình cuối cùng sẽ được tìm ra trong giai đoạn thử nghiệm và các ngoại lệ nghiêm trọng (chẳng hạn như SO) sẽ không bị khối bắt vì vậy khối ngoại lệ chung để thử lại logic có thể là ý tưởng chấp nhận được.
Nếu không thì có lẽ giải pháp của bạn là gói ExecuteReader
sẽ là một ý kiến hay. Xem xét rằng đây là được lập thành tài liệu
hành vi, bạn cũng cần chú ý đến các trường hợp ngoại lệ khác mà phương thức ExecuteReader có thể ném ra - vì vậy, bạn có thể cần phải lường trước IOException
và ObjectDisposedException
ngoài InvalidOperationException
.