Bỏ qua để đến nội dung
getnextpdf.com

Tài liệu tham khảo lỗi

Đây là danh sách tham khảo các ngoại lệ mà NextPDF Core nêu ra, được tổ chức theo lĩnh vực. Mỗi trang nhóm lỗi sẽ ghi rõ, cho từng lớp, khi nào nó được ném, dữ liệu có cấu trúc nó mang theo, và cách khôi phục. Nếu bạn đang chẩn đoán một triệu chứng thay vì bắt một lớp cụ thể, hãy bắt đầu với các hướng dẫn khắc phục sự cố — chúng được tổ chức theo những gì bạn quan sát được.

  • Hầu hết các ngoại lệ đều mở rộng một lớp cơ sở duy nhất, NextPdfException, nên bạn có thể bắt toàn bộ họ lớp này chỉ với một khối catch.
  • NextPdfException nhận biết context: nó hiện thực ContextAwareExceptionInterface, vốn khai báo getContext(): array. Nhiều lớp con ghi đè getContext() để trả về các khóa chẩn đoán có cấu trúc; số khác kế thừa giá trị mặc định rỗng và phơi bày chi tiết qua thông báo và các getter có kiểu.
  • Một số ít ngoại lệ cấp thấp mở rộng trực tiếp \RuntimeException của PHP thay vì NextPdfException. Những lớp này không nhận biết context và mang chi tiết trên các thuộc tính công khai chỉ đọc. Mỗi trang nhóm lỗi đều đánh dấu chúng một cách rõ ràng.
  • Hai kiểu tuân thủ có tên …Violation (ComplianceViolation, RuleViolation) là các đối tượng giá trị, không phải ngoại lệ — chúng mô tả một phát hiện mà không bị ném ra.

NextPdfException là một lớp trừu tượng mở rộng \RuntimeException và hiện thực ContextAwareExceptionInterface. Hợp đồng này rất nhỏ:

interface ContextAwareExceptionInterface
{
/** @return array<string, mixed> structured, log-safe diagnostic context */
public function getContext(): array;
}

Do đó một trình xử lý phòng thủ trông như sau:

use NextPDF\Exception\NextPdfException;
try {
// … NextPDF operation …
} catch (NextPdfException $e) {
$logger->error($e->getMessage(), $e->getContext());
// getContext() returns [] when a subclass does not override it;
// the message and any typed getters still carry the detail.
}

Vì một số lỗi xuất hiện dưới dạng một \RuntimeException trần (xem các ghi chú theo từng nhóm), một ranh giới phòng vệ kép cũng có thể bắt \RuntimeException và kiểm tra kiểu cụ thể.

  • Lỗi core và lỗi chung — các lỗi về tài liệu, hợp nhất, khả năng truy cập, hóa đơn điện tử, không gian màu, đối tượng giá trị, và chế độ nghiêm ngặt, cùng các kiểu cơ sở dùng chung.
  • Lỗi bảo mật, ký và PKI — tạo và xác minh chữ ký, dấu thời gian, xác thực đường dẫn PKI và ràng buộc tên, băm, toàn vẹn, và PKCS#11.
  • Lỗi kết xuất và I/O — bố cục HTML và paged-media, phông chữ và định hình văn bản, trình ghi và trình đọc, và siêu dữ liệu XMP.
  • Lỗi môi trường chạy và hỗ trợ — truyền tải HTTP, khả năng phục hồi (circuit breaker, chế độ suy giảm), khả năng quan sát, và xử lý manifest.
  • Lỗi Accelerator — truyền tải sidecar tăng tốc tùy chọn.
  • Lỗi tuân thủ — các yêu cầu về clause-hash và vòng đời tuân thủ.