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
Görev
KolayprocessNumber adında iki argüman alan bir metod oluşturun:
- Tamsayıya dönüştürmek için bir String (
number) - Bir istisna atılıp atılmayacağını belirleyen bir boolean (
shouldThrow)
Metod şunları yapmalıdır:
- result değişkenini 0'a başlatın
- 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
- catch bloğunda: result'ı -1 yapın
- finally bloğunda: result'a 100 ekleyin
- 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 = 3Kendin 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));
}
}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
1Çok Boyutlu Diziler
2D Diziler Temelleri2D Dizi Elemanlarına Erişim2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaJagged Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey2HashMap Bölüm 1
HashMap Nedir?HashMap TanımlamaDeğerlere ErişimAnahtarın Varlığını Kontrol EtmeSözlükleri DeğiştirmeÖzet - HashMap3HashMap Bölüm 2
HashMap YöntemlerikeySet() ile YinelemeentrySet() ile Yinelemeİç İçe HashMapÖzet - Depo YönetimiÖzet - HashMap İşlemleri6İleri Akış Kontrolü
Etiketli İfadelerSwitch İfadesiDesen EşleştirmeKoruyucu Yan CümlelerÖzet - Akış Kontrolü9Proje - Benzersiz Kelime Sayacı
Metin Girişi ve DepolamaKelime İşleme