Android Room TypeConverters中的错误处理

时间:2019-04-02 11:48:02

标签: android kotlin android-room

我正在尝试确保将有关会议室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中包装代码会弄乱我的返回类型。那么,处理错误并报告错误的最佳方法是什么。

顺便说一句。我有兴趣将完整的stacktrace发送到崩溃报告工具,因为我需要跟踪用户正在使用的App版本。

0 个答案:

没有答案