Исключения

Исключения


В главное меню

Исключение представляет событие, которое возникает при выполнении программы и нарушает ее нормальной ход.

Столкнувшись с непреодолимой проблемой, код может возбудить исключение и таким способом сообщить, что ее необходимо устранить, прежде чем двигаться далее.

Возбуждение исключений

Применяется оператор throw

proficiencyCheck(swordsJuggling)

fun proficiencyCheck (swordJuggling: Int?) {
swordJuggling ?: 
             throw IllegalStateException("Player cannot juggle swords")
}

Пользовательские исключения

Можно создавать исключения самостоятельно для определенной проблемы. Для этого создается класс.

class UnskilledSwordJugglerException: IllegalStateException("Player cannot juggle swords")

fun proficiencyCheck (swordJuggling: Int?) {
swordJuggling ?: 
             throw UnskilledSwordJugglerException()
}

Обработка исключений (try-catch)

try {
    proficiencyCheck(swordsJuggling)
    swordsJuggling = swordsJuggling!!.plus(1)
} catch (e: Exception) {
    println(e)
}

Если исключение не появится, оператор try выполнится, а оператор catch нет.

Проверка условий

Можно также воспользоваться функцией checkNotNull

fun proficiencyCheck (swordJuggling: Int?) {

checkNotNull(swordJuggling) { "Player cannot juggle swords" }

}

Функции проверки условий — хороший способ проверить требования, прежде чем выполнять код. Они гораздо понятнее, чем ручное возбуждение исключений, потому что проверяемое условие можно видеть в имени функции.

Для чего использовать NULL?

Null часто используется как начальное значение переменной, которая не имеет естественного значения. Более того, во многих языках можно объявить переменную без начального значения, и тогда она получит значение по умолчанию null.


Пример:

fun sum(a: String, b: String) : Int {
    val result = try {
        val numA = a.toInt()
        val numB = b.toInt()
        numA + numB
    } catch (e: Exception) {
        0
    }
    println(result)
    return result
}


В главное меню

Report Page