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.
Tantangan
MudahBuat method bernama processNumber yang menerima dua argumen:
- String (
number) untuk dikonversi menjadi bilangan bulat - boolean (
shouldThrow) yang menentukan apakah exception harus dilempar
Method tersebut harus:
- Menginisialisasi variabel result dengan nilai 0
- 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
- Di dalam blok catch: tetapkan result menjadi -1
- Di dalam blok finally: tambahkan 100 ke result
- 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));
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika & Alur
1Array Multidimensi
Dasar Array 2DMengakses Elemen Array 2DLoop Bersarang dengan Array 2DRangkuman: Array 2DPenjumlahan dan Pengurangan MatriksArray BergerigiArray 3D dan Lebih JauhPola Umum Array 2DRangkuman: Semua tentang Array2HashMap Bagian 1
Apa itu HashMap?Deklarasikan HashMapMengakses nilaiPeriksa apakah key adaMengubah dictionaryRingkasan: HashMap3HashMap Bagian 2
Method HashMapIterasi dengan keySet()Iterasi dengan entrySet()HashMap BersarangRangkuman: Kelola GudangRangkuman: Operasi HashMap6Alur Kontrol Lanjutan
Pernyataan LabelEkspresi SwitchPencocokan PolaKlausa PenjagaRingkasan Alur Kontrol9Proyek: Penghitung Kata Unik
Input dan Penyimpanan TeksPemrosesan KataLatihan sendiri: Compiler Java online