Tôi có một phương thức gọi một hàm SQLServer để thực hiện tìm kiếm văn bản miễn phí đối với một bảng. Chức năng đó đôi khi sẽ có kết quả cuộc gọi đầu tiên trong một SQLException: "Lời vi phạm thời gian chờ cho chuỗi truy vấn toàn văn". Vì vậy, thông thường tôi muốn thử lại yêu cầu đó bởi vì nó sẽ thành công trên các yêu cầu tiếp theo. Phong cách tốt để cấu trúc logic thử lại là gì. Tại thời điểm này tôi có như sau:Phong cách mã hóa C# tốt để bắt SQLException và thử lại là gì
var retryCount = 0;
var results = new List<UserSummaryDto>();
using (var ctx = new UsersDataContext(ConfigurationManager.ConnectionStrings[CONNECTION_STRING_KEY].ConnectionString))
{
for (; ;)
{
try
{
results = ctx.SearchPhoneList(value, maxRows)
.Select(user => user.ToDto())
.ToList();
break;
}
catch (SqlException)
{
retryCount++;
if (retryCount > MAX_RETRY) throw;
}
}
}
return results;
Thực ra, khái niệm đơn giản và nên hoạt động. Mặc dù tôi thận trọng chống lại việc sử dụng exteme của Var. Đôi khi một int chỉ là một int. – MAW74656
'Ngày Lỗi Tiếp tục Tiếp theo' trong Visual Basic là khái niệm đơn giản - điều đó không làm cho nó là một ý tưởng tốt. – MusiGenesis
@ MAW74656: Tôi đã bình chọn bình luận của bạn dựa trên nhận xét 'var'. IMO, trình biên dịch sẽ không cho phép sử dụng nó khi nó che dấu loại đối tượng, như ở đây. – MusiGenesis