Blok Finally
Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 27 dari 66.
Blok finally berisi kode yang selalu dijalankan, baik terjadi exception maupun tidak, bahkan jika ada pernyataan return di blok try atau catch.
Buat struktur try-catch-finally dasar:
try
{
// Kode yang mungkin menimbulkan pengecualian
int result = 10 / 2;
Console.WriteLine("Result: " + result);
}
catch (DivideByZeroException ex)
{
// Kode yang menangani pengecualian
Console.WriteLine("Cannot divide by zero: " + ex.Message);
}
finally
{
// Kode yang selalu dijalankan
Console.WriteLine("This always executes");
}
Blok finally berguna untuk tugas pembersihan, seperti menutup file atau koneksi database:
System.IO.StreamReader file = null;
try
{
file = new System.IO.StreamReader("data.txt");
string content = file.ReadToEnd();
Console.WriteLine(content);
}
catch (System.IO.FileNotFoundException)
{
Console.WriteLine("File not found.");
}
finally
{
// Selalu tutup file, meskipun terjadi pengecualian
if (file != null)
{
file.Close();
}
}
Tantangan
MudahBuat method bernama ProcessData yang:
- Menerima parameter string yang mewakili nama file
- Mencoba membuka file dan membaca isinya
- Menulis isinya ke console
- Membersihkan resource dengan benar menggunakan blok finally
- Menangani FileNotFoundException dan IOException
Jika file tidak dapat ditemukan, cetak: "ERROR: File not found: [filename]"
Jika terjadi error IO lain, cetak: "ERROR: Could not read the file: [error message]"
Selalu cetak "File operation completed." di blok finally, baik terjadi exception maupun tidak.
Coba sendiri
using System;
using System.IO;
class Program
{
public static void ProcessData(string filename)
{
// Tulis kodemu di sini
}
static void Main(string[] args)
{
string filename = Console.ReadLine();
ProcessData(filename);
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1array Multidimensi
Dasar-Dasar array 2DMendeklarasikan dan Menginisialisasi array 2DMengakses Elemen array 2DPerulangan Bersarang dengan array 2Darray BergerigiOperasi Matriks UmumRangkuman: array Multidimensi4Teknik Alur Kontrol
Pengembalian DiniKlausa PenjagaPernyataan Lompatan (goto)Break dan ContinueMeratakan Percabangan Bersarang7Operator Logika Lanjutan
Evaluasi Hubung SingkatOperator Logika PercabanganPrioritas OperatorRingkasan Operator Lanjutan2Pengambilan Keputusan Tingkat Lanjut
Beberapa KondisiLogika Boolean yang KompleksPerbandingan If dan SwitchPernyataan Switch BersarangUlasan: Pengambilan Keputusan Tingkat Lanjut5Penanganan Exception
Dasar Try-CatchJenis ExceptionBeberapa Blok CatchBekerja dengan fileBlok FinallyUsing vs. Try-FinallyException KustomRingkasan: Penanganan error3Peningkatan Loop
Performa LoopIterasi yang KompleksSetiap Jenis LoopRefactoring LoopRangkuman: Loop yang Dioptimalkan6Penanganan Null
Dasar Referensi NullTipe Nilai NullablePola Pemeriksaan NullPemrograman DefensifRingkasan: Keamanan NullLatihan sendiri: Compiler C# online