---
metadata:
  - name: generator
    content: Diplodoc Platform v5.66.1
alternate:
  - https://appmetrica.yandex.com/docs/en/sdk/ios/analytics/objectivec/AMAErrorRepresentable.md
  - https://appmetrica.yandex.com/docs/ru/sdk/ios/analytics/objectivec/AMAErrorRepresentable.md
  - https://appmetrica.yandex.com/docs/zh/sdk/ios/analytics/objectivec/AMAErrorRepresentable.md
  - href: https://appmetrica.yandex.com/docs/zh/sdk/ios/analytics/objectivec/AMAErrorRepresentable.md
    type: text/markdown
    title: Markdown version
  - href: https://appmetrica.yandex.com/docs/zh/llms.txt?revision=r22013810
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://appmetrica.yandex.com/docs/zh/llms.txt?revision=r22013810

# AMAErrorRepresentable 协议

用于AppMetrica发送的错误协议。

每个实现该协议的类实例都必须有一个ID。 AppMetrica 使用 ID 来对错误进行分组。

所有发送的错误信息都可以在 AppMetrica 报告中查看。

您可以实现此协议来发送自定义错误。 您也可以使用默认的 [AMAError](https://appmetrica.yandex.com/docs/zh/sdk/ios/analytics/objectivec/AMAError.md) 实现。

## Properties {#property_summary}

#|
|| [identifier](#property_identifier) | Error ID. AppMetrica 用它来对错误进行分组。 ||
|| [消息](#property_message) | 任意错误描述。 ||
|| [参数](#property_parameters) | 附加的错误参数。 ||
|| [回溯跟踪](#property_backtrace) | 自定义错误回溯。 你可以使用 `NSThread.callStackReturnAddresses` 方法获取它。 ||
|| [underlyingError](#property_underlyingError) | 匹配 `AMAErrorRepresentable` 协议的错误实例。 ||
|#

## Property descriptions {#property_detail}

### identifier {#property_identifier}

```objectivec translate=no
@required
@property (readonly, copy, nonatomic) NSString *_Nonnull identifier;
```

Error ID. AppMetrica 用它来对错误进行分组。

最大值长度为300个字符。 如果值超出限制，AppMetrica 会截断它。

{% note info %}

AppMetrica 不使用嵌套错误 (`underlyingError`) ID 进行分组。

{% endnote %}

### message {#property_message}

```objectivec translate=no
@optional
@property (readonly, copy, nonatomic, nullable) NSString *message;
```

任意错误描述。

最大值长度为1000个字符。 如果值超出限制，AppMetrica 会截断它。

### parameters {#property_parameters}

```objectivec translate=no
@optional
@property (readonly, copy, nonatomic, nullable) NSDictionary<NSString *, id> *parameters;
```

额外的错误参数。

参数以键值对的形式表示，其中键和值都是字符串。 如果键或值不是字符串类型，AppMetrica会自动调用`description`方法。

参数的最大数量为50。 键的最大允许参数长度为100个字符，值的最大允许长度为2000个字符。 如果值超出限制，AppMetrica 会截断它。

### backtrace {#property_backtrace}

```objectivec translate=no
@optional
@property (readonly, copy, nonatomic, nullable) NSArray<NSNumber *> *backtrace;
```

自定义错误回溯。 你可以使用 `NSThread.callStackReturnAddresses` 方法来获取它。

堆栈帧的最大数量为 200。 如果值超出限制，AppMetrica 会截断它。

### underlyingError {#property_underlyingError}

```objectivec translate=no
@optional
@property (readonly, strong, nonatomic, nullable) id<AMAErrorRepresentable> underlyingError;
```

匹配 `AMAErrorRepresentable` 协议的错误实例.

嵌套错误的最大数量为10。 如果值超出限制，AppMetrica 会截断它。
