2012-07-03 17 views
5

Tôi đã triển khai lại Enumerable.Zip (tên tôi được gọi là Merge). Nó giống như bản gốc, ngoại trừ nếu một người đếm số MoveNext trả về false trước cái kia (chỉ ra các chuỗi không có cùng độ dài), nó ném một ngoại lệ.Ngoại lệ nào để ném khi độ dài chuỗi không giống nhau

Câu hỏi của tôi là: Ngoại lệ thích hợp nhất từ ​​BCL để ném ở đây là gì? (Tôi muốn điều này bắt chước phần còn lại của các hàm Enumerable (LINQ).)

+0

Người đầu tiên muốn có ngoại lệ với một ngoại lệ hoàn hảo. –

+0

@NikhilAgrawal có gì sai không? –

Trả lời

3

Tôi nghĩ rằng vì mảng thứ hai của bạn sẽ là một đối số. Vì vậy,

System.ArgumentOutOfRangeException 

Lớp con của ArgumentException được ném khi đối số (thường là số) quá lớn hoặc quá nhỏ. Ví dụ, điều này được ném khi chuyển một số âm vào một hàm chỉ chấp nhận các giá trị dương.

HOẶC có thể

System.InvalidOperationException 

Ném khi trạng thái của một đối tượng là không phù hợp với một phương pháp để thực hiện thành công, bất kể giá trị lý luận cụ thể. Ví dụ bao gồm đọc một tệp chưa mở hoặc nhận phần tử tiếp theo từ một điều tra viên, trong đó danh sách cơ bản đã được sửa đổi một phần trong quá trình lặp.

+0

FWIW: Tôi đã đi với 'System.ArgumentOutOfRangeException'. –

Các vấn đề liên quan