---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.2
alternate:
  - https://appmetrica.yandex.by/docs/en/sdk/ios/analytics/objectivec/AMAErrorRepresentable.md
  - https://appmetrica.yandex.by/docs/ru/sdk/ios/analytics/objectivec/AMAErrorRepresentable.md
  - href: ru/sdk/ios/analytics/objectivec/AMAErrorRepresentable.md
    type: text/markdown
    title: Markdown version
  - href: ../../../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://appmetrica.yandex.by/docs/ru/llms.txt

# Протокол AMAErrorRepresentable

Протокол для ошибок, которые можно отправлять в AppMetrica.

Каждый объект класса, который реализует протокол, должен иметь идентификатор. AppMetrica использует идентификаторы, чтобы группировать ошибки.

Вся отправленная информация об ошибках доступна в отчетах AppMetrica.

Вы можете реализовать этот протокол, чтобы отправлять собственные ошибки. Также вы можете воспользоваться дефолтной реализацией [AMAError](https://appmetrica.yandex.by/docs/ru/sdk/ios/analytics/objectivec/AMAError.md).

## Свойства {#property_summary}

#|
|| [identifier](#property_identifier) | Идентификатор ошибки. Используется AppMetrica для группировки ошибок. ||
|| [message](#property_message) | Произвольное описание ошибки. ||
|| [parameters](#property_parameters) | Дополнительные параметры ошибки. ||
|| [backtrace](#property_backtrace) | Кастомный бэктрейс ошибки. Вы можете получить его с помощью метода `NSThread.callStackReturnAddresses`. ||
|| [underlyingError](#property_underlyingError) | Объект ошибки, который соответствует протоколу `AMAErrorRepresentable`. ||
|#

## Описание свойств {#property_detail}

### identifier {#property_identifier}

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

Идентификатор ошибки. Используется AppMetrica для группировки ошибок.

Максимальная длина значения — 300 символов. Если значение превышает ограничение, AppMetrica обрезает его.

{% note info %}

AppMetrica не использует идентификаторы вложенных ошибок (`underlyingError`) для группировки.

{% 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 символов для ключа, 2 000 для значения. Если значение превышает ограничение, 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 обрезает его.
