Функция requireFinite
Функция requireFinite
проверяет, является ли число
конечным (не бесконечным и не NaN). Если число не является конечным,
функция выбрасывает исключение IllegalArgumentException
.
Применяется к числам с плавающей точкой типа Float
или Double
.
Импорт
import kotlin.math.requireFinite
Синтаксис
inline fun requireFinite(value: Double, name: String? = null): Double
inline fun requireFinite(value: Float, name: String? = null): Float
Параметры
value
- число типа Double
или Float
для проверки на конечность.
name
- необязательное имя переменной, которое будет отображаться
в сообщении об ошибке при выбрасывании исключения.
Пример
Проверим конечность обычного числа:
val num: Double = 15.7
val res: Double = requireFinite(num)
println("Number is finite: $res")
Результат выполнения кода:
Number is finite: 15.7
Пример
Проверим число NaN:
try {
val num: Double = Double.NaN
val res: Double = requireFinite(num, "testValue")
println("Number is finite: $res")
} catch (e: IllegalArgumentException) {
println("Error: ${e.message}")
}
Результат выполнения кода:
Error: testValue must be finite.
Пример
Проверим положительную бесконечность:
try {
val num: Double = Double.POSITIVE_INFINITY
val res: Double = requireFinite(num)
println("Number is finite: $res")
} catch (e: IllegalArgumentException) {
println("Error: ${e.message}")
}
Результат выполнения кода:
Error: must be finite.
Пример
Проверим отрицательную бесконечность с указанием имени переменной:
try {
val num: Float = Float.NEGATIVE_INFINITY
val res: Float = requireFinite(num, "temperature")
println("Temperature is finite: $res")
} catch (e: IllegalArgumentException) {
println("Validation error: ${e.message}")
}
Результат выполнения кода:
Validation error: temperature must be finite.
Пример
Использование функции для валидации входных данных:
fun calculateSquareRoot(x: Double): Double {
val validX = requireFinite(x, "input value")
return kotlin.math.sqrt(validX)
}
try {
val result = calculateSquareRoot(Double.NaN)
println("Result: $result")
} catch (e: IllegalArgumentException) {
println("Calculation error: ${e.message}")
}
Результат выполнения кода:
Calculation error: input value must be finite.