throw
- Java kursu
- Başlangıç
- Ders 108/116
- 4 dk
throw ile istisna fırlatmayı öğrenirsin.
throw ile istisna fırlat
throw anahtar sözcüğü bilinçli olarak istisna fırlatır. Bir koşul bozulduğunda programı durdurmak ve çağıranı uyarmak için kullanılır.
int age = -5;
if (age < 0) {
throw new IllegalArgumentException("Negatif yaş");
}new IllegalArgumentException(...) bir istisna nesnesi yaratır; throw onu fırlatır. İstisna yakalanmazsa program çöker ve yığın izi basılır. Koşul kontrolünden sonra throw yazmak, geçersiz girdiyi erken durdurmanın temiz yoludur.
İstisna yakala ve yeniden fırlat
Bazen istisnayı yakalayıp işledikten sonra yeniden fırlatmak gerekir. throw ile yakalanan Exception nesnesini tekrar atarsın; böylece üst katman da haberdar olur.
try {
int r = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("Loglandı");
throw e;
}Yeniden fırlatma, loglama veya geçici düzeltmeden sonra hatanın yayılmasını sağlar. Ama dikkat: finally varsa o yine de çalışır. Bu düzenek, hata yönetimini katmanlara bölmek için kullanışlıdır.
Uygulama Negatif yaş hatası
int age = -5; tanımla. if (age < 0) ile throw new IllegalArgumentException("Negatif yaş") fırlat. Hepsini try içine al; IllegalArgumentException yakala ve Hata: ile getMessage() yazdır.
Başlangıç kodu
public class Main {
public static void main(String[] args) {
int age = -5;
// koşulu denetle, hata fırlat, yakala, mesaj yaz
}
}Örnek çözüm
try {
if (age < 0) {
throw new IllegalArgumentException("Negatif yaş");
}
} catch (IllegalArgumentException e) {
System.out.println("Hata: " + e.getMessage());
}Beklenen çıktı
Hata: Negatif yaş
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İfadeyi amacıyla eşleştir
| Kavram | Anlamı |
|---|---|
throw |
İstisna fırlatır |
new IllegalArgumentException |
Nesne yaratır |
if (age < 0) |
Koşul kontrolü |
getMessage() |
Açıklama verir |
2 throw new IllegalArgumentException("X") ne yapar?
- Bir değişken tanımlar
- Bir istisna nesnesi yaratıp fırlatır Doğru cevap
- Bir yöntem çağırır
- Bir döngü başlatır
Açıklama: new ile istisna nesnesi yaratılır, throw ile fırlatılır.
3 Negatif yaş için fırlat
if (age < 0) {
____ new IllegalArgumentException("Negatif yaş");
}
if (age < 0) {
throw new IllegalArgumentException("Negatif yaş");
}
Açıklama: throw new ile istisna yaratılıp fırlatılır.