İstisnalar, Java programlamasında kodundaki beklenmedik durumlarla başa çıkmana yardımcı olan temel bir kavramdır. Artık istisnaların nasıl ele alınacağını öğrendiniz; şimdi bir adım ileriye gitme zamanı: kendi istisnalarını fırlatma ve tanımlama. Bu kılavuzda, kodunuzda kendi istisnalarınızı nasıl oluşturacağınızı ve kodunuzu daha net ve sağlam hale getirmeye yardımcı olacak kişiselleştirilmiş istisna sınıfları yaratmayı göstereceğim.
En önemli çıkarımlar
- Java'da kendi istisnalarını fırlatarak belirli hata durumlarını daha iyi yönetebilirsin.
- Kendi istisna sınıflarını tanımlamak, hata yönetimini daha doğal ve anlaşılır hale getirmeni sağlar.
- İstisnaları hem metodlarda fırlatmayı hem de Try-Catch bloklarıyla çalışan bir şekilde nasıl işleyeceğini öğreneceksin.
Aşama Aşama Kılavuz
1. İstisnalarla Başa Çıkma Yenilemesi
Başlangıçta, Java'da istisnalarla nasıl başa çıktığını hatırlamak önemlidir. Örneğin, hataları yakalamana ve buna göre tepki vermene olanak tanıyan try-catch yapıları aklına gelebilir. Önceki konu boyunca, bir String'in sayı ile geçersiz bir dönüşüm yapılması durumunda NumberFormatException'un nasıl ele alınacağını gördün.
2. Kendi Kodunda İstisnalar
Şimdi, kendi kodunda istisnaları nasıl fırlatabileceğini inceleyelim. Bu, programlarında standart olarak Java'da ele alınmayan belirli hata koşullarını tanımlamak istediğinde özellikle faydalı olabilir.

3. Doğrulama İçin Bir Sınıf Oluşturma
Örnek olarak, MeinValidator adında bir sınıf oluşturalım. Bu sınıf, doğrulama yapılması beklenen bir kod parçası alacak; bu durumda bir PIN kodu. Eğer girilen PIN kodu belirli bir değere eşit değilse, bir istisna fırlatılacak.
4. Hata Oluşturma ve Yakalama
validateCode metodunun içinde bir if ifadesi oluşturabilirsin. Eğer kod beklenen değerle eşleşmiyorsa, şu şekilde görünen yeni bir istisna fırlatabilirsin: throw new Exception("Sadece 42, tüm soruların yanıtıdır.");. Burada istisnayı oluşturmak için throw anahtar kelimesini kullanıyorsun.
5. Metod İmzasını Ayarlama
Bu metodun bir istisna fırlatabileceğini belirtmek için, throws anahtar kelimesini metod imzasına dahil etmelisin. Böylece metodun adı artık: public void validateCode(int code) throws Exception. Bu şekilde, istisna fırlatılması açık bir şekilde iletişim kurulur ve metodun tüm çağrıcıları bununla başa çıkmak zorundadır.
6. Try-Catch Bloğunda İstisnayı Ele Alma
İstisnayı yakalamak için, metodu bir try-catch bloğuna ekleyebilirsin. Bu sayede bir istisna meydana geldiğinde, hata yönetimini gerçekleştireceğin catch bloğundaki kod çalıştırılır, örneğin bir hata mesajı vermek.
7. İstisnaları Opsiyonel Olarak Yeniden Fırlatma
Ayrıca, yakalanan bir istisnayı yeniden fırlatmayı düşünebilirsin, böylece daha yüksek bir mantık katmanına iletebilirsin. Ancak, bunun yalnızca ana metodun içinde olmadığında mantıklı olduğunu unutmamalısın, çünkü burada genellikle catch bloğundan sonra başka kod yoktur.
8. Kendi İstisnalarının Avantajları
Kendi istisna sınıflarının en büyük avantajı, sezgisel bir şekilde adlandırılmaları ve uygulama durumuna özel olmalarıdır. Genel istisnalarla çalışmak yerine, NotFoundException veya InvalidInputException gibi özel sınıflar tanımlayabilirsin. Bu, hataların tanımlanmasında ve kodunun hata ayıklaması ve bakımı açısından yardımcı olur.

Özet – Java'da İstisnaları Fırlatmak ve Tanımlamak
Kendi istisnalarını fırlatmak ve tanımlamak, hataları etkili bir şekilde ele almak ve kodunu daha okunabilir hale getirmek için güçlü bir araç sağlar. Belirli istisna koşulları tanımlayabilir ve hataların mantıksal ayrımını geliştirerek programının bakımını artırabilirsin.
Sık Sorulan Sorular
Checked ve unchecked istisnalar arasındaki fark nedir?Checked istisnalar, metod imzasında ele alınmak zorundadır, oysa unchecked istisnalar için bu zorunlu değildir.
Neden kendi istisnalarımı oluşturmalıyım?Kendi istisnalar, sorunları daha iyi tanımlamak ve kodun daha okunabilir hale gelmesi için belirli hata mesajları ile yardımcı olur.
Bir metodun içinde nasıl istisna fırlatırım?throw anahtar kelimesini kullanarak, ardından yeni bir istisna örneği ile birlikte kullanmalısın.
Bir istisna fırlattığımı metod deklarasyonunda belirtmem gerekiyor mu?Evet, bunun için metod imzasında throws anahtar kelimesini kullanırsın.
Bir istisnayı ele almazsam ne olur?Program genellikle bir çalışma zamanı istisnası ile sonlanır, istisna geçersiz değilse ve ele alınmamışsa.