Tôi muốn sử dụng khối try/catch khi đường dẫn bình thường thông qua mã sẽ tiến hành mà không có lỗi trừ khi có một số điều kiện đặc biệt - như máy chủ bị hỏng, thông tin đăng nhập của bạn bị hết hạn hoặc không chính xác. Tôi sẽ không nhất thiết phải sử dụng nó để xử lý các lỗi không đặc biệt - nói như người dùng hiện tại không có vai trò chính xác. Đó là, khi bạn có thể mong đợi hợp lý và xử lý một lỗi mà không phải là một điều kiện đặc biệt, tôi nghĩ bạn nên làm kiểm tra của bạn.
Trong trường hợp bạn đã mô tả - thiết lập và thực hiện truy vấn, khối try/catch là một cách tuyệt vời để xử lý nó như bạn thường mong đợi truy vấn thành công. Mặt khác, có thể bạn sẽ muốn kiểm tra xem nội dung của kết quả là những gì bạn mong đợi với logic luồng điều khiển thay vì chỉ cố gắng sử dụng dữ liệu có thể không hợp lệ cho mục đích của bạn.
Một điều bạn muốn tìm kiếm là sử dụng thử/nắm bắt cẩu thả. Thử/nắm bắt không nên được sử dụng để bảo vệ bản thân khỏi chương trình xấu - "Tôi không biết điều gì sẽ xảy ra nếu tôi làm điều này vì vậy tôi sẽ quấn nó trong một thử/nắm bắt và hy vọng cho tốt nhất" lập trình. Thông thường, bạn sẽ muốn hạn chế các loại ngoại lệ bạn bắt gặp với các loại không liên quan đến chính mã (máy chủ bị hỏng, thông tin đăng nhập không hợp lệ, v.v.) để bạn có thể tìm và sửa các lỗi liên quan đến mã (con trỏ null, v.v. .).
Cảm ơn rất nhiều! Ngoài sự tò mò, bạn sẽ xử lý như thế nào/đủ điều kiện truy vấn dẫn đến hàng trống khi bạn mong đợi dữ liệu (ví dụ: khi ai đó thay đổi thủ công một số trong chuỗi truy vấn)? – jeroen
Phụ thuộc vào hoàn cảnh chính xác, nhưng nếu có thể truy vấn sẽ không trả về dữ liệu tôi chỉ cần kiểm tra nếu có dữ liệu (số đếm hàng! = 0) và trả về một thông báo "truy vấn không trả về kết quả". – tvanfosson