Junior
როგორ მართოთ გამონაკლისები Kotlin-ში?
sobes.tech AI
პასუხი AI-სგან
Kotlin-ში გამონაკლისების მართვა ხორციელდება try, catch და finally ბლოკების გამოყენებით.
fun divide(a: Int, b: Int): Int {
try {
// საშიში კოდი
return a / b
} catch (e: ArithmeticException) {
// სპეციფიკური გამონაკლისის დამუშავება
println("შეცდომა: ნულზე გაყოფა!")
return 0
} catch (e: Exception) {
// ზოგადი გამონაკლისების დამუშავება
println("უცნობი შეცდომა: ${e.message}")
throw e // საჭიროების შემთხვევაში გამონაკლისის გადაგდება
} finally {
// კოდი, რომელიც ყოველთვის შესრულდება
println("რესურსების გაწმენდა ან სხვა საბოლოო მოქმედებები")
}
}
tryბლოკში იმყოფება კოდი, რომელიც შეიძლება გამოიწვიოს გამონაკლისი.catchბლოკი გამოიყენება გამონაკლისების დასაჭერად და დამუშავებისთვის. შესაძლებელია რამდენიმეcatchბლოკის გამოყენება სხვადასხვა ტიპის გამონაკლისებისთვის. გამონაკლისების ტიპები იჭერიან მათი გამოქვეყნების წესით.finallyბლოკში იმყოფება კოდი, რომელიც ყოველთვის შესრულდება, გამონაკლისის არსებობის მიუხედავად. ეს ბლოკი ხშირად გამოიყენება რესურსების გათავისუფლებისთვის.
განსხვავებით Java-სგან, Kotlin-ი არ მოითხოვს "checked" გამონაკლისების დამუშავებას. ყველა გამონაკლისი Kotlin-ში არის "unchecked".
გამონაკლისის გასატანად გამოიყენება throw საკვანძო სიტყვა:
fun validateAge(age: Int) {
if (age < 0) {
throw IllegalArgumentException("ასაკი არ შეიძლება იყოს უარყოფითი")
}
// ...
}
ასევე, შესაძლებელია გამოიყენოთ სტანდარტული კლასები გამონაკლისებისთვის ან შექმნათ საკუთარი, მემკვიდრეობით Exception ან RuntimeException-დან.