彩票走势图

PDF开发工具PDFlib的常规编程问题:异常处理

翻译|行业资讯|编辑:况鱼杰|2020-10-21 15:53:14.763|阅读 298 次

概述:PDFlib是业界领先的PDF开发工具箱,可用于生成和操纵PDF文件。PDFlib最大的亮点是在Web服务器或其他服务器端动态完成PDF创建,并且在现有应用中将文件另存为PDF格式。你可以使用PDFlib将数据库中的内容动态创建到PDF文件中,类似动态的网页。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

PDFlib是业界领先的PDF开发工具箱,可用于生成和操纵PDF文件。PDFlib最大的亮点是在Web服务器或其他服务器端动态完成PDF创建,并且在现有应用中将文件另存为PDF格式。你可以使用PDFlib将数据库中的内容动态创建到PDF文件中,类似动态的网页。

点击下载PDFlib


如果在程序中出现错误,这在许多语言中被称为异常,这是偶然发生的事情,在程序的生命周期内不会经常发生。一般的策略是对可能经常失败的函数调用使用常规的错误报告机制(即-1等特殊错误返回代码),对于在少数情况下不会因条件而混乱的代码使用特殊的异常机制。这正是PDFlib的发展道路某些可能会经常出错的操作,例如:

  • 尝试打开一个没有权限的输出文件
  • 尝试使用错误的文件名打开输入的PDF
  • 尝试打开损坏的图像文件

PDFlib通过返回PDFlib API参考中记录的特殊值(通常为–1,但在PHP绑定中为0)来发出此类错误信号。应用程序开发人员必须检查此错误代码的所有功能,这些功能在错误时记录为返回-1。其他事件可能被认为是有害的,但很少发生,例如:

  • 虚拟内存不足
  • 范围冲突(例如,在打开文档之前先关闭它)
  • 向PDFlib API函数提供错误的参数(例如,尝试绘制半径为负的圆,或提供错误的选项。)

当PDFlib检测到这种情况时,将引发异常,而不是将特殊的错误返回值传递给调用方法。重要的是要理解,发生异常时无法完成生成的PDF文档。可以在异常之后安全地调用的唯一方法是PDF_delete(),PDF_get_apiname(),PDF_get_errnum()和PDF_get_errmsg()。发生异常后调用任何其他PDFlib方法可能会导致意外结果。 该异常将包含以下信息:

  • 唯一的错误号;
  • 导致异常的PDFlib API函数的名称;
  • 描述性文本,包含问题的详细信息

查询函数调用失败的原因。如上所述,发生异常时,必须始终放弃生成的PDF输出文档。但是,当函数通过返回错误值报告非致命问题时,可以继续文档。客户端应用程序可以通过调整程序流程或提供不同的数据来继续文档。例如,当无法加载特定字体时,大多数客户端将放弃该文档,而其他客户端则可能更喜欢使用其他字体。在这种情况下,可能需要检索一条错误消息,以更详细地描述问题。在这种情况下,函数PDF_get_errnum(),PDF_get_errmsg()和PDF_get_apiname()可以在失败的函数调用之后即立即返回错误值-1(在PHP中为0)的函数调用之后被调用。

  • 错误政策。当PDFlib检测到错误情况时,它将根据可以使用errorpolicy选项配置的几种策略之一进行响应。 所有可以返回错误代码的函数也都支持errorpolicy选项。支持以下错误策略:
    • errorpolicy = legacy:不建议使用的设置可确保行为与PDFlib的早期版本兼容。 一些函数返回错误代码,而其他函数则根据各自的API描述抛出异常。 旧设置是默认错误策略。
    • errorpolicy = return:检测到错误情况时,函数将返回-1(在PHP中为0)错误值。 应用程序开发人员必须检查返回值以识别问题,并且必须以适合于应用程序的任何方式对问题做出反应。 这是推荐的方法,因为它允许使用统一的方法来处理错误。
    • errorpolicy = exception:检测到错误条件时引发异常。 发生异常后,输出文档将不完整且无法使用。 可以将其用于惰性编程,而不会产生任何错误条件,但以牺牲输出文档为代价,即使是可能由应用程序解决的问题

以下代码片段演示了有关异常处理的不同策略,这些示例尝试加载可能不可用的字体。如果errorpolicy = return,则必须检查返回值是否有错误。如果它指示失败,则可以查询失败的原因,以便正确处理该情况:

  • 警告。PDFlib在内部检测到一些问题情况,但不能通过抛出异常来证明中断程序流是合理的。不会引发异常,而是记录条件的描述。对于警告,我们建议采用以下方法:
    • 在开发阶段启用警告日志记录,并仔细研究日志文件中的所有警告消息。 它们可能指出您的代码或数据中的潜在问题,因此您应尝试了解或消除这些警告的原因。
    • 在生产阶段禁用警告日志记录,仅在出现问题时才重新启用它。

对正版授权PDFlib感兴趣的朋友,可以联系咨询购买

关注慧聚IT微信公众号 ☟☟☟,了解产品的最新动态及最新资讯。

1561953111.jpg


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:PDFlib

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP