Documentation
Интеграции
Kotlin
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()
-
— уникальный интеграционный токен Hawk;integrationToken -
— поставщик версии приложения: номера и имени версии;versionProvider -
— поставщик данных пользователя: уникального ID и имени;userProvider -
— включает вывод дополнительной отладочной информации.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()