我正在尝试确保将有关会议室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版本。