阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js N-API 错误处理

      Node.js N-API 错误处理

      N-API uses both return values and JavaScript exceptions for error handling. The following sections explain the approach for each case.

      返回值

      All of the N-API functions share the same error handling pattern. The return type of all API functions is napi_status.

      The return value will be napi_ok if the request was successful and no uncaught JavaScript exception was thrown. If an error occurred AND an exception was thrown, the napi_status value for the error will be returned. If an exception was thrown, and no error occurred, napi_pending_exception will be returned.

      In cases where a return value other than napi_ok or napi_pending_exception is returned, napi_is_exception_pending must be called to check if an exception is pending. See the section on exceptions for more details.

      The full set of possible napi_status values is defined in napi_api_types.h.

      The napi_status return value provides a VM-independent representation of the error which occurred. In some cases it is useful to be able to get more detailed information, including a string representing the error as well as VM (engine)-specific information.

      In order to retrieve this information napi_get_last_error_info is provided which returns a napi_extended_error_info structure. The format of the napi_extended_error_info structure is as follows:

      typedef struct napi_extended_error_info {
        const char* error_message;
        void* engine_reserved;
        uint32_t engine_error_code;
        napi_status error_code;
      };
      
      
      • error_message: Textual representation of the error that occurred.
      • engine_reserved: Opaque handle reserved for engine use only.
      • engine_error_code: VM specific error code.
      • error_code: n-api status code for the last error.

      napi_get_last_error_info returns the information for the last N-API call that was made.

      Do not rely on the content or format of any of the extended information as it is not subject to SemVer and may change at any time. It is intended only for logging purposes.


      更多内容请参考:Node.js N-API,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录