Bắt đầu ngayBắt đầu miễn phí

Xử lý exceptions

Trong các slide, chúng ta đã bàn về việc cung cấp ngữ cảnh phù hợp để xử lý sự cố. Một điểm thường bị bỏ qua khi ghi lại thông điệp lỗi là lý do sâu xa đằng sau. Nhiều khi lỗi rất chung chung như "Bad value" hoặc "Invalid date." Tuy vậy, bạn có thể dùng chi tiết và bối cảnh để làm rõ và hữu ích hơn cho các thông điệp đó.

Ở đây chúng ta sẽ làm việc với A1C, là tỷ lệ phần trăm hồng cầu có đường gắn vào hemoglobin. Thông thường, mức khi nhịn ăn dưới 5,7% đối với bệnh nhân không bị ảnh hưởng, từ 5,7% đến 6,4% là tiền tiểu đường, và trên 6,5% thường là dấu hiệu của bệnh tiểu đường không được kiểm soát.

Bài tập này là một phần của khóa học

Giao dịch và Xử lý Lỗi trong PostgreSQL

Xem khóa học

Hướng dẫn bài tập

  • Hoàn thiện khối giao dịch bằng cách điền các câu lệnh DOBEGIN ở nơi phù hợp.
  • Thêm một exception chèn 'a1c is typically less than 14' vào cột context của bảng errors.
  • Kết thúc exception bằng cách chỉ định ngôn ngữ thủ tục được sử dụng.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

-- Add a DO function
___ $$ 
-- BEGIN a transaction block
___ 
    INSERT INTO patients (a1c, glucose, fasting) 
    values (20, 89, TRUE);

-- Add an EXCEPTION                   
____ 
-- Catch all exception types
WHEN others THEN
    INSERT INTO errors (msg, detail, ___) VALUES 
  (
    'failed to insert', 
    'This a1c value is higher than clinically accepted norms.', 
    '___'
  );
END;
-- Make sure to specify the language
____ language 'plpgsql';

-- Select all the errors recorded
SELECT * FROM errors;
Chỉnh sửa và Chạy Mã