Menu
Coddy logo textTech

Finally Bloğu

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

finally bloğu, try-catch bloklarından sonra, bir istisna oluşsa da oluşmasa da yürütülecek kodu içerir. Dosyaları veya veritabanı bağlantılarını kapatmak gibi temizlik işlemleri için yaygın olarak kullanılır.

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

try {
   // İstisna fırlatabilecek kod
} catch (ExceptionType e) {
   // İstisnayı işleyecek kod
} finally {
   // Her zaman çalıştırılan kod
}

Bir sayaç örneği görelim:

int counter = 0;
try {
   int result = 10 / 0;
   // Bu bir istisna fırlatacak
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3;
   // Bu her zaman çalışacak
}

Yukarıdaki kodu çalıştırdıktan sonra, counter içerir:

3

challenge icon

Görev

Kolay

processNumber adında iki argüman alan bir metod oluşturun:

  1. Tamsayıya dönüştürmek için bir String (number)
  2. Bir istisna atılıp atılmayacağını belirleyen bir boolean (shouldThrow)

Metod şunları yapmalıdır:

  1. result değişkenini 0'a başlatın
  2. try bloğunda:
    • shouldThrow true ise, 10'u 0'a bölün
    • Aksi takdirde, number string'ini tamsayıya dönüştürün ve result'a kaydedin
  3. catch bloğunda: result'ı -1 yapın
  4. finally bloğunda: result'a 100 ekleyin
  5. result'ı string olarak döndürün

Kopya kağıdı

finally bloğu, try-catch bloklarından sonra çalıştırılır, bir istisna oluşup oluşmadığına bakılmaksızın. Temizlik işlemleri için kullanılır.

Temel yapı:

try {
   // Code that might throw an exception
} catch (ExceptionType e) {
   // Code to handle the exception
} finally {
   // Code that always executes
}

Sayaç örneği:

int counter = 0;
try {
   int result = 10 / 0; // throws exception
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3; // always executes
}
// counter = 3

Kendin dene

import java.util.Scanner;

public class Main {
    public static String processNumber(String number, boolean shouldThrow) {
        // Buraya kodunuzu yazın
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String number = scanner.nextLine();
        boolean shouldThrow = Boolean.parseBoolean(scanner.nextLine());
        
        System.out.println(processNumber(number, shouldThrow));
    }
}
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