Table of contents

Kotlin

Добавьте репозиторий JitPack в файл сборки:

<repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories>

Добавьте зависимость:

<dependency> <groupId>com.github.codex-team</groupId> <artifactId>hawk.kotlin</artifactId> <version>v3.0</version> </dependency>

Чтобы подключить библиотеку, добавьте репозитории в build.gradle:

allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } }

Затем добавьте зависимость:

dependencies { implementation 'com.github.codex-team:hawk.kotlin:v3.0' }

Для активации кэтчера создайте экземпляр HawkExceptionCatcher в основном классе приложения:

val catcher: HawkExceptionCatcher = HawkCatcher(integrationToken) .versionProvider(VersionProviderImpl()) .userProvider(UserProviderImpl()) .isDebug(true) .build() catcher.start()
  • integrationToken — уникальный интеграционный токен Hawk;
  • versionProvider — поставщик версии приложения: номера и имени версии;
  • userProvider — поставщик данных пользователя: уникального ID и имени;
  • isDebug — включает вывод дополнительной отладочной информации.

В примере используются стандартные реализации провайдеров. Подробнее см. интерфейсы VersionProvider и UserProvider.

Пример необработанной ошибки:

fun myTask() { val d = 10 / 0 } myTask()

Такое необработанное исключение будет автоматически отправлено в Хоук.

Если вы обрабатываете ошибку в try/catch, её нужно отправить вручную через caught():

val catcher: HawkExceptionCatcher fun myTask() { try { val d = 10 / 0 } catch (e: Exception) { catcher.caught(e) // Метод формирует событие в JSON и отправляет его } } myTask()

Если исключение было перехвачено в try/catch, но метод caught() не вызван, ошибка не будет отправлена в Хоук:

fun myTask() { try { val d = 10 / 0 } catch (e: Exception) { e.printStackTrace() // Ошибка не будет отправлена } } myTask()