Hata yönetimi
- Java kursu
- Başlangıç
- Ders 22/116
- 6 dk
try/catch ile geçersiz girdileri yakalarsın.
try/catch nedir?
try/catch, bir kod parçası hata fırlattığında programın çökmesini önler. Hata try bloğunda oluşursa catch bloğu çalışır.
try {
int sonuc = divide(10, 0);
} catch (ArithmeticException e) {
System.out.println("Sıfıra bölme");
}Burada divide(10, 0) hata fırlatırsa catch yakalar ve ekrana mesaj yazar. Program kesintisiz devam eder.
Bu, sıfır kontrolü yapmaktan farklı bir yaklaşımdır: hatayı önceden önlemek yerine oluştuğunda yakalar.
finally nedir?
try/catch'in yanına bir finally bloğu eklenebilir. finally hata olsa da olmasa da her zaman çalışır.
try {
// kod
} catch (Exception e) {
// hata
} finally {
// temizlik - her zaman çalışır
}Genellikle dosya kapatma, bağlantı sonlandırma gibi temizlik işleri için kullanılır. Hesap makinesinde şimdilik kullanmayacağız, ama bilmen iyi olur.
Uygulama try/catch ile divide çağrısı
Mevcut sınıfta main içindeki divide(10, 2) çağrısını try bloğuna al. Bir catch (ArithmeticException e) bloğu ekle ve println ile Sıfıra bölme yazdır. Diğer çağrılar korunsun.
Başlangıç kodu
public class Main {
static int add(int a, int b) {
return a + b;
}
static int subtract(int a, int b) {
return a - b;
}
static int multiply(int a, int b) {
return a * b;
}
static int divide(int a, int b) {
if (b == 0) {
return 0;
}
return a / b;
}
public static void main(String[] args) {
System.out.println("Hesap makinesi");
System.out.println(add(5, 3));
System.out.println(subtract(5, 3));
System.out.println(multiply(5, 3));
System.out.println(divide(10, 2));
}
}Örnek çözüm
public class Main {
static int add(int a, int b) {
return a + b;
}
static int subtract(int a, int b) {
return a - b;
}
static int multiply(int a, int b) {
return a * b;
}
static int divide(int a, int b) {
if (b == 0) {
return 0;
}
return a / b;
}
public static void main(String[] args) {
System.out.println("Hesap makinesi");
System.out.println(add(5, 3));
System.out.println(subtract(5, 3));
System.out.println(multiply(5, 3));
try {
System.out.println(divide(10, 2));
} catch (ArithmeticException e) {
System.out.println("Sıfıra bölme");
}
}
}Beklenen çıktı
Hesap makinesi 8 2 15 5
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 try/catch ne yapar?
- Hata üretir
- Hataları yakalar Doğru cevap
- Hata fırlatır
- Kodu yavaşlatır
Açıklama: try/catch hataları yakalar ve çökmeyi önler.
2 İstisna kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
try |
Dene |
catch |
Yakala |
ArithmeticException |
Matematik hatası |
Exception |
Temel istisna |
3 catch bloğunu tamamla
try { } catch (____ e) { System.out.println("Hata"); }
try { } catch (ArithmeticException e) { System.out.println("Hata"); }
Açıklama: catch (ArithmeticException e) matematik hatasını yakalar.