İfade Olarak try/catch/finally
Hata oluşabilecek koddan değer döndürmek için try-catch'i ifade olarak kullanın.
İfade Olarak try/catch/finally, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.
try Bir İfadedir
Kotlin'de try/catch bir ifadedir; bir değer döndürür. try veya catch bloğundaki son ifade sonuçtur.
Temel try/catch
Hata fırlatabilecek kodu bir try bloğuna sarın; özel durumları catch içinde ele alın.
fun main() {
try {
val n = "abc".toInt()
println(n)
} catch (e: NumberFormatException) {
println("Not a number: ${e.message}")
}
}try Bir Değer Döndürür
Bir try/catch sonucunu bir değişkene atayın. Değer, eşleşen bloğun ürettiği şeydir.
fun main() {
val n: Int = try {
"42".toInt()
} catch (e: NumberFormatException) {
-1
}
println(n) // 42
}İşlev Gövdesinde try
try ifadesini, ifade gövdeli bir işlevin gövdesi olarak kullanabilirsiniz.
fun parseOrDefault(s: String, default: Int): Int = try {
s.toInt()
} catch (e: NumberFormatException) {
default
}
fun main() {
println(parseOrDefault("42", 0)) // 42
println(parseOrDefault("abc", 0)) // 0
}Birden Çok catch Yan Yönergesi
Farklı özel durum türleri için birden çok catch yan yönergesi listeleyin. İlk eşleşme kazanır.
fun main() {
val result: String = try {
val list = listOf(1)
list[5].toString()
} catch (e: IndexOutOfBoundsException) {
"index out of bounds"
} catch (e: Exception) {
"other error"
}
println(result)
}finally Bloğu
finally her zaman çalışır; temizleme işlemleri için kullanılır. try ifadesinin dönüş değerini etkilemez.
fun main() {
val n: Int = try {
"42".toInt()
} catch (e: NumberFormatException) {
-1
} finally {
println("cleanup runs")
}
println("value = $n")
}Birden Çok Deyimle try
Birden çok deyim içeren bir blok kullanın; değer son ifadedir.
fun main() {
val result: String = try {
val n = 10 / 2
val s = "Result is $n"
s.uppercase()
} catch (e: Exception) {
"ERROR"
}
println(result) // RESULT IS 5
}Birden Çok Türü Yakalama
Kotlin, Java'nın çoklu catch söz dizimini (catch (A | B)) desteklemez. Ortak bir üst tür kullanın veya ayrı catch yan yönergeleri yazın.
fun parse(s: String): Int = try {
s.toInt()
} catch (e: RuntimeException) { // covers NumberFormatException etc.
-1
}
fun main() {
println(parse("42"))
println(parse("nope"))
}catch Sırası Önemlidir
Özel durumları üst türlerinden önce listeleyin; aksi takdirde önce üst tür yakalar.
fun main() {
try {
throw NumberFormatException("oops")
} catch (e: NumberFormatException) {
println("specific: ${e.message}")
} catch (e: Exception) {
println("generic")
}
}try İçinden Dönüş
try içinden erken dönebilirsiniz; finally bloğu yine de çalışır.
fun process(x: Int): String {
return try {
require(x > 0) { "must be positive" }
"ok: $x"
} catch (e: IllegalArgumentException) {
"error: ${e.message}"
} finally {
println("processing done")
}
}
fun main() {
println(process(5))
println(process(-1))
}Karşıt Örüntü: Boş catch
Boş catch blokları hataları gizler. En azından özel durumu günlüğe kaydedin veya yeniden fırlatın.
fun main() {
try {
"abc".toInt()
} catch (e: NumberFormatException) {
// BAD: silently swallow
}
println("continued")
}Hızlı Kontrol
Kotlin'de bir try/catch ifadesi neye değerlendirilir?
Özet
try/catch bir ifadedir: bir değer döndürür. Özel durumları üst türlerinden önce listeleyin, temizleme işlemleri için finally kullanın ve boş catch bloklarından kaçının. Bunu bir işlev gövdesi olarak veya hata durumunda varsayılan bir değer atamak için kullanın.
Sıkça Sorulan Sorular
“İfade Olarak try/catch/finally” dersi ücretsiz mi?
Evet — “İfade Olarak try/catch/finally” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.
“İfade Olarak try/catch/finally” dersinde ne öğreneceğim?
Hata oluşabilecek koddan değer döndürmek için try-catch'i ifade olarak kullanın. Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“İfade Olarak try/catch/finally” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- İfade Olarak try/catch/finally
- Özel İstisna Sınıfları Oluşturma
- runCatching ve Result
- İstisnaları Yeniden Fırlatma ve Zincirleme