Sobes.tech
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 արտակարգ իրավիճակների օգտագործումը: Բոլոր արտակարգ իրավիճակները unchecked են:

Արտակարգ իրավիճակներ նետելու համար օգտագործվում է throw բանալի բառը:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Տարիքը չի կարող լինել բացասական")
    }
    // ...
}

Նույնպես, կարող եք օգտագործել ստանդարտ գրադարանի արտակարգ իրավիճակների դասերը կամ ստեղծել սեփականները, ժառանգելով Exception կամ RuntimeException-ից։