文档

异常处理

更新时间:

本节主要介绍升级版 SDK 的异常种类以及对于异常的处理。

升级版 SDK 的将异常的种类进行了一定的细分,主要细分为以下几个 Error:

  • UnretryableError:该异常主要是因为网络问题造成,一般是网络问题造成达到最大重试次数后抛出,可以通过err.data.lastRequest来查询错误发生时的请求信息。

  • 在 SDK 的请求中主要以业务报错为主的异常,该异常的示例中提供了三个参数为用户排查问题提供帮助:

    • code: OpenAPI 业务报错的错误码。

    • message:OpenAPI 业务报错的错误信息,其中会包含本次请求的 RequestId。

    • data:OpenAPI 报错后服务端返回的详细信息。

    TypeScript 版:

    import Facebody20191230, * as $Facebody20191230 from '@alicloud/facebody20191230';
    import * as $OpenApi from '@alicloud/openapi-client';
    import * as $Util from '@alicloud/tea-util';
    import { createReadStream } from 'fs';
    
    export default class Client {
      static async main(): Promise<void> {
        const config = new $OpenApi.Config({
          // 您的AccessKey ID
          accessKeyId: 'AccessKeyId',
          // 您的AccessKey Secret
          accessKeySecret: 'AccessKeySecret',
          // 访问的区域
          regionId: 'RegionId'
        });
        const client = new Facebody20191230(config);
        const request = new $Facebody20191230.DetectBodyCountAdvanceRequest({
          imageURLObject: createReadStream("本地文件路径"),
        });
        // 创建RuntimeObject实例并设置运行参数。
        const runtime = new $Util.RuntimeOptions({});
        try {
          const resp = await client.DetectBodyCountAdvance(request, runtime);
          console.log(resp.headers);
          console.log(resp.body);
        } catch (err) {
          if (err instanceof UnretryableError) {
            console.log(err.data.lastRequest);
          } else {
            console.log(err.code);
            console.log(err.message);
            console.log(err.data);
          }
        }
    
      }
    }

    JavaScript 版:

    const { default: Facebody20191230, DetectBodyCountAdvanceRequest } = require('@alicloud/ecs20140526');
    const { Config } = require('@alicloud/openapi-client');
    const { RuntimeOptions } = require('@alicloud/tea-util');
    const { createReadStream } = require('fs');
    async function main() {
      const config = new Config({
        // 您的AccessKey ID
        accessKeyId: 'AccessKeyId',
        // 您的AccessKey Secret
        accessKeySecret: 'AccessKeySecret',
        // 访问的区域
        regionId: 'RegionId'
      });
      const client = new Facebody20191230(config);
      const request = new DetectBodyCountAdvanceRequest({
        imageURLObject: createReadStream("本地文件路径"),
      });
      // 创建RuntimeObject实例并设置运行参数。
      const runtime = new RuntimeOptions({});
      try {
        const resp = await client.DetectBodyCountAdvance(request, runtime);
        console.log(resp.headers);
        console.log(resp.body);
      } catch (err) {
        if (err instanceof UnretryableError) {
          console.log(err.data.lastRequest);
        } else {
          console.log(err.code);
          console.log(err.message);
          console.log(err.data);
        }
      }
    }
  • 本页导读 (1)
文档反馈