Я пытаюсь убедиться, что все ошибки конверсии, связанные с моей комнатой 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. Я заинтересован в том, чтобы отправлять полную трассировку стека моему инструменту отчетов о сбоях, так как мне нужно отследить версию моего приложения, которую использует пользователь.