44.8. Xử lý lỗi trong PL/토토 결과#

Mã 토토 결과 trong hoặc được gọi từ chức năng PL/토토 결과 có thể gây ra lỗi, bằng cách thực hiện một số hoạt động không hợp lệ hoặc bằng cách tạo lỗi bằng cách sử dụng 토토 결과ERRORlệnh hoặc pl/토토 결과'sELOGLệnh. Những lỗi như vậy có thể bị bắt trong 토토 결과 bằng 토토 결과CatchLệnh. Nếu một lỗi không bị bắt nhưng được phép tuyên truyền đến cấp cao nhất thực thi chức năng PL/토토 결과, thì nó được báo cáo là lỗi SQL trong truy vấn gọi của hàm.

Ngược lại, các lỗi SQL xảy ra trong PL/토토 결과'sSPI_EXEC, spi_prepareSPI_EXECPCác lệnh được báo cáo là lỗi 토토 결과, vì vậy chúng có thể bắt được bởi 토토 결과'sCatchLệnh. .

토토 결과 cung cấpErrorCodeBiến có thể đại diện cho thông tin bổ sung về một lỗi trong một biểu mẫu dễ dàng cho các chương trình TCL để giải thích. Nội dung ở định dạng danh sách TCL và từ đầu tiên xác định hệ thống con hoặc thư viện báo cáo lỗi; Ngoài ra, các nội dung được để lại cho hệ thống con hoặc thư viện riêng lẻ. Đối với các lỗi cơ sở dữ liệu được báo cáo bởi các lệnh PL/TCL, từ đầu tiên làPostgres, Từ thứ hai là số phiên bản PostgreSQL và các từ bổ sung là các cặp tên/giá trị trường cung cấp thông tin chi tiết về lỗi. Các trườngSQLSTATE, điều kiệntin nhắnluôn được cung cấp (hai lần đầu tiên đại diện cho mã lỗi và tên điều kiện như trongPostgreSQL : 문서 : 16 : 부록 A. PostgreSQL 스포츠 토토 사이트 코드). Các trường có thể có mặt bao gồmchi tiết, Gợi ý, ​​bối cảnh, lược đồ, Bảng, cột, DataType, ràng buộc, câu lệnh, con trỏ_poseition, FileName, Linenofuncname.

Một cách thuận tiện để làm việc với PL/토토 결과'sErrorCodeThông tin là tải nó vào một mảng, để tên trường trở thành các chỉ số mảng. Mã để làm điều đó có thể trông giống như

Nếu [bắt spi_exec $ sql_command] 
    if [lindex $ :: errorCode 0] == "postgres" 
        etray set orrorArray $ :: ErrorCode
        Nếu $ errorArray (điều kiện) == "unefined_table" 
            # đối phó với bàn bị thiếu
         khác 
            # đối phó với một số loại lỗi SQL khác

(Các dấu chấm đôi chỉ định rõ ràng rằngErrorCodelà một biến toàn cầu.)

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.