Kotlin Temelleri-6

Armagan Civelek
2 min readJan 19, 2021

--

Road Map

  1. BASİC

2.CONTROL FLOW

3.FUNCTİONS

4.KOTLİN OOP

5.COLLECTİONS

6.EXCEPTION HANDLING

  • Exceptions
  • Try-catch block

6)Exception Handling

A)Exceptions

Exception, istenmedik,beklenmedik bir durum olarak tanımlanabilir. Exception handling, hataları algılamak ve çalışma zamanında ki çökmeleri engelemek için kullanılan bir tekniktir.

Kotlinde bütün exception sınıfları, Throwable sınıfından türemiştir.

Bir exception nesnesi fırlatmak :

fun main() {
throw Exception("Kotlin Exception !")
}

Sık rastlanılan exception’lar →

  • NullPointerException: Boş bir nesnenin property veya methoduna ulaşmaya çalıştığımız zaman ortaya çıkar.
  • ArithmeticException: Sayılar üzerinde geçersiz aritmetik işlemler yapıldığında ortaya çıkar. → Sıfıra bölme hatası
  • SecurityException: Güvenlik ihlalini belirtmek ortaya çıkar.
  • ArrayndexOutOfBoundException: Bir dizinin geçersiz indeksine erişilmeye çalışıldığında ortaya çıkar.

Aritmetik exception:

fun main(args : Array<String>){var num = 10 / 0      // throws exceptionprintln(num)}
output:
Exception in thread "main" java.lang.ArithmeticException: / by zero

Yukarıda ki kod parçasında num değişkenini 10/0 değerini atamaya çalışıyoruz lakin 0' a bölünmeye izin verilmediğini biliyoruz. Bu durumda programı çalıştırırsak derleyici tarafından bir hata fırlatılır. Bu ve bu gibi sorunları çözmek için try-catch bloğu kullanmalıyız.

B)Try-catch Block

Kotlin’de, programda exception yakalamak için try-catch bloğu kullanıyoruz. Try bloğu, bir exception atmaktan sorumlu kodu kapsar ve catch bloğu istisnayı ele almak için kullanılır.

import kotlin.ArithmeticException
fun main(args : Array<String>){
try{
var num = 10 / 0
}
catch(e: ArithmeticException){
println("0'a bölünmeye izin yok girdiğiniz değeri kontrol ediniz!!!")
}
}
output:
0'a bölünmeye izin yok girdiğiniz değeri kontrol ediniz!!!

Yukarıda ki kod parçasında try-catch bloğu kullanıldı. Bir exception atabilen kod bloğumuz try parantezleri içerisine alınmıştır. Catch bloğunda ise olası bir hatayı yakaladık. Programız’ın patlaması ve durdurulması yerine ekrana yazdırdığımız bir yazı ile kullanıcıya bilgi vermiş olduk.

Try-catch Expression olarak kullanımı :

Kotlinde, önceden aşina olduğumuz expression kullanımı try-catch bloğu ile birlikte de kullanabiliriz. Try veya catch bloğunun son satırındaki değer döndüreceğimiz değerdir ve bu kod bloğunun geri kalanını etkilemez.

fun main(args: Array<String>){
val str = getNumber("10.5")
println(str)
}
fun getNumber(str: String): Int{
return try {
Integer.parseInt(str)
} catch (e: NumberFormatException) {
println(e)
0
}
output:
java.lang.NumberFormatException: For input string: "10.5"
0

Bu yazımızla beraber “Kotlin Temelleri” başlıklı serimizin sonuna gelmiş olduk.

Sağlıcakla Kalın :)

--

--