Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Lợi thế của việc sử dụng try {} catch {} so với if {} else {} là gì

Tôi sẽ sử dụng khối try / catch khi đường dẫn thông thường thông qua mã sẽ tiếp tục mà không có lỗi trừ khi thực sự có một số điều kiện ngoại lệ - như máy chủ không hoạt độ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 không nhất thiết phải sử dụng nó để xử lý các lỗi không đặc biệt - chẳng hạn như người dùng hiện tại không ở đúng vai trò. Đó là, khi bạn có thể mong đợi và xử lý một cách hợp lý một lỗi không phải là điều kiện ngoại lệ, tôi nghĩ bạn nên kiểm tra lại.

Trong trường hợp bạn đã mô tả - thiết lập và thực hiện một 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ả có phải 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 hay không.

Một điều mà bạn muốn chú ý là việc sử dụng try / catch một cách cẩu thả. Không nên sử dụng try / catch để bảo vệ bản thân khỏi lập trình tồi - kiể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ẽ kết thúc nó trong một lần thử / bắt và hy vọng điều tốt nhất" của lập trình. Thông thường, bạn sẽ muốn hạn chế các loại ngoại lệ mà bạn bắt gặp đối với những ngoại lệ không liên quan đến bản thân mã (máy chủ ngừng hoạt độ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. .).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Git bash trên windows 7. Lệnh mysqldump không hoạt động

  2. Bỏ hai ký tự cuối cùng của một cột trong MySQL

  3. Cách bỏ qua hàng khi nhập kết xuất MySQL xấu

  4. Cập nhật Mã lỗi Trường Cơ sở dữ liệu Mã ghi nhận

  5. Java - MySQL sang Hive Nhập trong đó MySQL đang chạy trên Windows và Hive đang chạy trên Cent OS (Horton Sandbox)