Chinese Simplified (简体中文)

错误处理

所有 ABBYY FineReader Engine 接口方法和属性都会返回 HRESULT 类型的值。HRESULT("结果句柄")是返回成功、警告和错误值的一种方式。 HRESULT 实际上并非句柄;它们只是 32 位的值,值中有多个字段编码。零结果表示成功,非零结果表示失败。

如果某个方法或属性调用不成功,该方法或属性将返回一个表示失败的 HRESULT 代码。此外,它会通过 IErrorInfo 接口提供一个更详细的错误描述。请参阅有关 COM 的文档以了解错误处理的详细描述。最通用的提示如下:

  • C#。为 COM 接口自动生成的包装可以检测错误并将其转换为标准异常。可包含一系列 ABBYY FineReader Engine 方法的语句为:
try
{
    ...
}
catch( Exception e )
{
    ...
}
    
  • 含 Native COM 支持的 C++。Native COM 支持技术可将接口功能的 HRESULT 代码转换为特殊类型的异常(_com_error) 并自动使用来自 IErrorInfo 的信息。因此,一系列的 FineReader Engine 方法可用以下语句表示:
try {
    ...
}
catch (_com_error& e) {
    ...
}
    

一般来说,可以使用可引发异常功能,通过 C++ 代码标准方式执行有 Native COM 支持的错误处理。

  • Raw C++。FineReader Engine 接口方法和属性不能引发异常,但是会返回 HRESULT。对于处理这些返回代码来说最重要的方法是 SUCCEEDED 和 FAILED 宏指令。它们会测试 HRESULT 值,然后从中推断操作结果,即成功还是失败。如要获取 IErrorInfo 对象接口的指针,请使用 GetErrorInfo API 功能。
  • Visual Basic。Visual Basic 用户可以通过 Err 对象的 Number 属性访问 HRESULT 代码。Err 对象的其它属性可用 IErrorInfo 的信息进行初始化。此处的错误处理可用 On Error 语句执行。如果在代码的任何地方都没有使用 On Error Resume Next 语句,发生的任何运行时间错误可造成显示来自 IErrorInfo 的错误消息,并停止代码执行。
  • Java。请参见 在 Java 中使用 ABBYY FineReader Engine 了解在 Java 中的错误处理建议。

另请参阅

标准返回代码

24.03.2023 8:51:52

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.