Обработка ошибок в Android Room TypeConverters - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь убедиться, что все ошибки конверсии, связанные с моей комнатой TypeConverters, правильно передаются в мой инструмент отчетов о сбоях. Но я сомневаюсь, как с этим следует обращаться.

Я использую приведенный ниже код, но мне интересно, есть ли способ улучшить это, каким-то образом поместив код в блок try / catch?

enum class Status(val code: Int) {
    ACTIVE(0), INACTIVE(1), COMPLETED(2)

    companion object {

        @JvmStatic
        @TypeConverter
        fun toInt(status: Status) : Int = status.code 

        @JvmStatic
        @TypeConverter
        fun toStatus(code: Int) : Status = when(code) { 
            Status.ACTIVE.code -> Status.ACTIVE
            Status.INACTIVE.code -> Status.INACTIVE
            Status.COMPLETED.code -> Status.COMPLETED
            else -> {
                val e = IllegalArgumentException("Unsupported status code: $code")
                Timber.e(e)
                throw e
        }
    }

Упаковка кода в try / catch мешает моему типу возврата. Итак, как лучше всего обрабатывать ошибки и сообщать о них.

Btw. Я заинтересован в том, чтобы отправлять полную трассировку стека моему инструменту отчетов о сбоях, так как мне нужно отследить версию моего приложения, которую использует пользователь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...