diff --git a/FloconAndroid/flocon-base/src/main/java/io/github/openflocon/flocon/plugins/network/model/BadQualityConfig.kt b/FloconAndroid/flocon-base/src/main/java/io/github/openflocon/flocon/plugins/network/model/BadQualityConfig.kt index 6965d8fd..2fb94700 100644 --- a/FloconAndroid/flocon-base/src/main/java/io/github/openflocon/flocon/plugins/network/model/BadQualityConfig.kt +++ b/FloconAndroid/flocon-base/src/main/java/io/github/openflocon/flocon/plugins/network/model/BadQualityConfig.kt @@ -1,5 +1,6 @@ package io.github.openflocon.flocon.plugins.network.model +import io.github.openflocon.flocon.FloconLogger import kotlin.random.Random data class BadQualityConfig( @@ -36,8 +37,13 @@ data class BadQualityConfig( val classPath: String, ) : Type { fun generate() : Throwable? { - val errorClass = Class.forName(classPath) - return errorClass.newInstance() as? Throwable + return try { + val errorClass = Class.forName(classPath) + errorClass.newInstance() as? Throwable + } catch (t: Throwable) { + FloconLogger.logError("BadQualityConfig error, className not found", t) + null + } } } } diff --git a/FloconAndroid/flocon/src/main/java/io/github/openflocon/flocon/plugins/network/mapper/BadQualityToJson.kt b/FloconAndroid/flocon/src/main/java/io/github/openflocon/flocon/plugins/network/mapper/BadQualityToJson.kt index 9c38fa00..1d8d2b41 100644 --- a/FloconAndroid/flocon/src/main/java/io/github/openflocon/flocon/plugins/network/mapper/BadQualityToJson.kt +++ b/FloconAndroid/flocon/src/main/java/io/github/openflocon/flocon/plugins/network/mapper/BadQualityToJson.kt @@ -68,7 +68,7 @@ fun parseBadQualityConfig(jsonString: String): BadQualityConfig? { val errorContentType = errorObject.optString("errorContentType") val error = BadQualityConfig.Error( weight = errorObject.getDouble("weight").toFloat(), - type = if (errorException.isNotEmpty()) { + type = if (errorException.isNotEmpty() && errorException != "null") { BadQualityConfig.Error.Type.ErrorThrow(errorException) } else { BadQualityConfig.Error.Type.Body(