Tôi đang nói chuyện với một đối tượng COM (đối tượng Microsoft ADO Recordset). Trong một trường hợp nhất định recordset sẽ trả về một thất bại (tức là tiêu cực) HRESULT
, với thông điệp:COM: Làm thế nào để xử lý một ngoại lệ cụ thể?
mục không thể được tìm thấy trong bộ sưu tập tương ứng với tên yêu cầu hoặc thứ
tôi biết thông báo lỗi này có nghĩa là gì, biết tại sao nó xảy ra và tôi cách khắc phục nó. Nhưng tôi biết những điều này bởi vì tôi đọc tin nhắn, mà may mắn thay là trong một ngôn ngữ tôi hiểu.
Bây giờ tôi muốn xử lý ngoại lệ này đặc biệt. Các đối tượng COM ném một HRESULT của
0x800A0CC1
Trong một thế giới lý tưởng Microsoft sẽ đã ghi nhận what errors can be returned khi tôi cố gắng để truy cập:
records.Fields.Items(index)
với một chỉ số không hợp lệ. Nhưng họ không; họ nhất mà họ nói là một lỗi thể xảy ra, tức là .:
Nếu mục không thể tìm thấy một đối tượng trong các bộ sưu tập tương ứng với đối số Index , một lỗi xảy ra.
Cho rằng mã lỗi trả lại không ghi nhận, là nó đúng để xử lý một mã trở lại cụ thể của `0x800A0CC1' khi tôi đang cố gắng để bẫy các ngoại lệ:
mục không thể được tìm thấy trong bộ sưu tập tương ứng với tên được yêu cầu hoặc thứ tự
?
Vì Microsoft không ghi lại mã lỗi, chúng kỹ thuật thay đổi trong tương lai.
Hai câu trả lời giống nhau đề cập rằng tài liệu về các lỗi do thuộc tính tạo ra không được ghi lại bằng tài sản. Nhưng bạn nhận được chấp nhận bởi vì bạn trích dẫn các tài liệu, và liên kết với nó. Ngoài ra, với đại diện 1k, bạn giữ các câu trả lời được chấp nhận nhiều hơn Hans (Xin lỗi Hans, nhưng đó là sự thật) –