Exceptions and Defensive Coding
Custom Error Code
Use a named status value for a domain-specific failure.
Custom Error Code
CustomErrorCode.kt
class LevelStatus(val ok: Boolean, val label: String)
fun levelName(level: Int): LevelStatus {
if (level < 1) {
return LevelStatus(false, "level:missing")
}
return LevelStatus(true, "level:$level")
}
fun main() {
val level =
val status = levelName(level)
val outcome = if (status.ok) {
"ok"
} else {
"fail"
}
println("level=$level")
println("outcome=$outcome")
println("label=${status.label}")
}
class LevelStatus(val ok: Boolean, val label: String)
fun levelName(level: Int): LevelStatus {
if (level < 1) {
return LevelStatus(false, "level:missing")
}
return LevelStatus(true, "level:$level")
}
fun main() {
val level =
val status = levelName(level)
val outcome = if (status.ok) {
"ok"
} else {
"fail"
}
println("level=$level")
println("outcome=$outcome")
println("label=${status.label}")
}
class LevelStatus(val ok: Boolean, val label: String)
fun levelName(level: Int): LevelStatus {
if (level < 1) {
return LevelStatus(false, "level:missing")
}
return LevelStatus(true, "level:$level")
}
fun main() {
val level =
val status = levelName(level)
val outcome = if (status.ok) {
"ok"
} else {
"fail"
}
println("level=$level")
println("outcome=$outcome")
println("label=${status.label}")
}
custom-error
A small status type can name an application failure without exposing low-level details.