Tôi có một lớp với một API cho phép tôi hỏi các đối tượng cho đến khi nó ném một số IndexOutOfBoundsException
.Trình lặp .NET để bọc ném API
Tôi muốn đưa nó vào một trình lặp, để có thể viết mã sạch hơn. Tuy nhiên, tôi cần phải nắm bắt những ngoại lệ để ngăn chặn lặp:
static IEnumerable<object> Iterator(ExAPI api) {
try {
for(int i = 0; true; ++i) {
yield return api[i]; // will throw eventually
}
}
catch(IndexOutOfBoundsException) {
// expected: end of iteration.
}
}
Nhưng ...
Khi sử dụng với biểu hiện, một tuyên bố yield return không thể xuất hiện trong một khối bắt hoặc trong một thử khối có một hoặc nhiều mệnh đề bắt. Để biết thêm thông tin , hãy xem Xử lý ngoại lệ Báo cáo (Tham chiếu C#) .Báo cáo (Tham chiếu C#). (từ số msdn)
Tôi vẫn có thể bọc api này như thế nào?
@Coding Gorilla: đó là điểm: không. Nó bắt đầu từ số không và tăng lên. – xtofl