Menu
CoddyTech

Blok finally

Termasuk bagian Logika & Alur dalam perjalanan Java di Coddy. Pelajaran 41 dari 59.

Blok finally berisi kode yang akan dijalankan setelah blok try-catch, baik terjadi exception maupun tidak. Blok ini biasanya digunakan untuk operasi pembersihan, seperti menutup file atau koneksi database.

Berikut struktur dasar blok try-catch-finally:

try {
   // Kode yang mungkin memunculkan pengecualian
} catch (ExceptionType e) {
   // Kode untuk menangani pengecualian
} finally {
   // Kode yang selalu dijalankan
}

Mari kita lihat contoh dengan sebuah penghitung:

int counter = 0;
try {
   int result = 10 / 0;
   // Ini akan memunculkan exception
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3;
   // Ini akan selalu dijalankan
}

Setelah menjalankan kode di atas, counter berisi:

3

Tipe di dalam tanda kurung catch menentukan error mana yang ditangani blok tersebut. Dua error yang umum adalah ArithmeticException, yang dilempar saat pembagian bilangan bulat dengan nol, dan NumberFormatException, yang dilempar oleh Integer.parseInt() saat teks bukan angka. Satu catch dapat menangani beberapa tipe sekaligus:

try {
   int value = Integer.parseInt(text);
   int result = 10 / value;
} catch (ArithmeticException | NumberFormatException e) {
   // menangani keduanya
} finally {
   // selalu dijalankan
}

Menangkap Exception sebagai gantinya cakupannya lebih luas: cara ini menangani keduanya dan exception lainnya.

challenge icon

Tantangan

Mudah

Buat method bernama processNumber yang menerima dua argumen:

  1. String (number) untuk dikonversi menjadi bilangan bulat
  2. boolean (shouldThrow) yang menentukan apakah exception harus dilempar

Method tersebut harus:

  1. Menginisialisasi variabel result dengan nilai 0
  2. Di dalam blok try:
    • Jika shouldThrow bernilai true, bagi 10 dengan 0
    • Jika tidak, konversi string number menjadi bilangan bulat dan simpan nilainya di result
  3. Di dalam blok catch: tetapkan result menjadi -1
  4. Di dalam blok finally: tambahkan 100 ke result
  5. Kembalikan result sebagai string

Coba sendiri

import java.util.Scanner;

public class Main {
    public static String processNumber(String number, boolean shouldThrow) {
        // Tulis kodemu di sini
    }
    
    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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Java online