Kotlin Exception Handling
Hata olma ihtimali olan kodlarda kullanırız. Burada daha çok kullanıcıdan aldığımız veriler, veritabanından gelen bilgiler veya dışardan servisten size gelen bilgilerin hataya düşme olasılığı çok yüksektir. Bu gibi durumlarda kullanılır.
Örnek üzerinden gidelim. Kullanıcıdan sayılar aldığımızı ve bu sayılar ile de bölme işlemi yaptığımızı düşünelim. İşin içinde kullanıcı varsa her zaman hata olasılığını düşünmeliyiz😅. Bu kodu try blogunun içine alıyoruz ve hata olması durumunda catch bloğunda çalışmasını istediğimiz kodu yazabiliriz.
try{
val numOne = 100
val numTwo = 0
val end = numOne/ numTwo
prinln(end)
}catch(e:Exception){
println("Lütfen sayısal 0 olmayan bir değer giriniz")
}finally{
//Her durumda çalışmasını istediğimiz kod
}
try-catch yapısı birlikte çalışır.
try{
// Hata olma olasılığı olan kodlar burada yazılır
}catch{
//Hatanın olması durumunda çalışacak kodlar da burada yazılır.
}
Birde finally keyword ümüz var. Peki bunu ne için kullanıyoruz?
“finally” bloğu, kaynakların (dosya, veritabanı bağlantısı, ağ bağlantısı vb.) güvenli bir şekilde kapatılması gibi işlemler için kullanılır.
Şimdi özetleyecek olursak:
try: Hata alma ihtimali olan kod blogunda kullanılır. Her türlü çalışır.
catch: Hata olması durumunda çalışır.
finally: Bu kod her koşulda çalışacak kod bloklarını içerir.
Bu kısım da akıllara şu soru gelebilir, finally bloğuna ne gerek var zaten her koşul da alttaki kod çalışmayacak mı?
- Kodun asenkron çalışma durumu var. Bunu önlemek ve senkron bir şekilde çalıştırmak için finally bloğunun altında yazılmalıdır.
Source: Bootcamp ders notlarını içermektedir.