Menu
CoddyTech

Try-Catch Temelleri

Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 40 / 59.

Java'da try-catch blokları, program yürütülürken oluşabilecek istisnaları (hataları) işlemek için kullanılır. İstisna oluşturabilecek kod try bloğuna, hata işleme kodu ise catch bloğuna yazılır.

İşte bir try-catch bloğunun temel yapısı:

try {
   // İstisna fırlatabilecek kod
} catch (ExceptionType e) {
   // İstisnayı işleyecek kod
}

Integer.parseInt() ile uygulamalı olarak görelim; bu yöntem bir String'i tamsayıya dönüştürür:

String text = "abc";
try {
   int number = Integer.parseInt(text);
   System.out.println(number);
} catch (NumberFormatException e) {
   System.out.println("Error: Not a valid number");
}

Yukarıdaki kodu çalıştırdıktan sonra çıktı şöyledir:

Error: Not a valid number

Tek bir try bloğunu, her istisna türü için bir tane olmak üzere, birkaç catch bloğu takip edebilir. Java, türü fırlatılan istisnayla eşleşen ilk bloğu çalıştırır:

try {
   int number = Integer.parseInt(text);
   System.out.println(10 / number);
} catch (NumberFormatException e) {
   System.out.println("Error: Not a valid number");
} catch (ArithmeticException e) {
   System.out.println("Error: Division by zero");
}
challenge icon

Görev

Kolay

divideNumbers adlı ve üç bağımsız değişken alan bir metot oluşturun:

  1. İlk sayıyı temsil eden bir String (num1)
  2. İkinci sayıyı temsil eden bir String (num2)
  3. Dizi indeksini temsil eden bir tamsayı (index)

Metot şunları yapmalıdır:

  1. 2 boyutunda bir dizi oluşturun
  2. num1'in ayrıştırılmış tamsayı değerinin num2'nin ayrıştırılmış tamsayı değerine bölümünü verilen indekste depolayın
  3. Verilen indeksteki değeri döndürün
  4. Tüm olası istisnaları ele alın ve bunun yerine ilgili hata mesajını döndürün

Döndürülecek mesajlar şunlar olmalıdır:

  • NumberFormatException için: "Error: Invalid number format"
  • ArithmeticException için: "Error: Division by zero"
  • ArrayIndexOutOfBoundsException için: "Error: Invalid array index"
  • Başarılı işlem için: sonucu bir dize olarak döndürün

Kendin dene

import java.util.Scanner;

public class Main {
    public static String divideNumbers(String num1, String num2, int index) {
        // Kodunuzu buraya yazın
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String num1 = scanner.nextLine();
        String num2 = scanner.nextLine();
        int index = Integer.parseInt(scanner.nextLine());
        
        System.out.println(divideNumbers(num1, num2, index));
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Java derleyicisi