Penggunaan fungsi FINALLY pada PHP

Penggunaan fungsi FINALLY pada PHP

Hallowww semua, di artikel ini saya coba membahas mengenai Exception Handling di bahasa Dart.

Apa itu Exception Handling ? ini merupakan cara komputer untuk mengelola error. Jadi saat bikin program itu tidak semuanya akan berjalan mulus, nanti pasti ada error yang harus kita kelola.

Pada kondisi apa terjadi error ? Umumnya exception handling digunakan saat:

  • Tipe data tidak sesuai
  • Method / property tidak ditemukan
  • Error saat membaca file / IO
  • Kesalahan jaringan saat melakukan request / response
  • (...tambahkan dikolom komentar yaa hehe)

Di Dart sendiri sudah disediakan fitur exception handling, dan caranya pun mirip seperti bahasa pemrograman lainnya. Konsep utama dari exception handling adalah try-catch.

try-catch

try merupakan tahapan awal untuk menjalankan exception handling. Sedangkan catch digunakan untuk menerima errornya.

Contoh programnya :

try {
  // Kode disini akan berjalan pertama kali
  print("Proses...");
  dynamic name = 20;
  print(name.length); // Awww error !
  print("Finish !"); // Kode tidak dijalankan
} catch (err) {
  print("Terjadi kesalahan");
}

Enter fullscreen mode Exit fullscreen mode

Program diatas akan mengeluarkan error karena property length itu tidak ada di variable name.

Jadi cara kerjanya adalah pertama kode blok yang ada di dalam try akan dijalankan terlebih dahulu. Ketika terjadi error maka akan langsung lompat ke blok catch.

Output:

Penggunaan fungsi FINALLY pada PHP

Kode program print("Finish !"); tidak dijalankan.

on

Dari bahasa yang saya pelajari sepertinya, Dart ini membuat konsep baru pada Exception Handling, karena pada umumnya yang tersedia hanyalah try, catch, dan finally tapi di Dart ini ada on.

Jadi apa itu on pada Dart ? on digunakan untuk mengelola error berdasarkan jenis errornya. Di kode sebelumnya kita hanya menggunakan try-catch saja yang dimana semua error akan masuk ke dalam catch.

Kode program diatas kita jalankan ulang tapi dengan print yang berbeda:

try {
  // Kode disini akan berjalan pertama kali
  print("Proses...");
  dynamic name = 20;
  print(name.length); // Awww error !
  print("Finish !"); // Kode tidak dijalankan
} catch (err) {
  print("Terjadi kesalahan");
  print(err.toString()); // Kode program baru
}

Enter fullscreen mode Exit fullscreen mode

Outputnya adalah:

Penggunaan fungsi FINALLY pada PHP

Dari gambar diatas kita melihat ada error dengan jenis NoSuchMethodError. Dari dokumentasinya, dituliskan:

...corresponding to a failed method call

Artinya error NoSuchMethodError adalah jenis error yang digunakan ketika method pada variabel tidak ada. Ini terjadi akibat property / method length tidak ada di variabel name.

Terus dimana on nya ?

Nahh disini kita bisa menerapkan keyword on. Maka programnya menjadi:

try {
  // Kode disini akan berjalan pertama kali
  print("Proses...");
  dynamic name = 20;
  print(name.length); // Awww error !
  print("Finish !"); // Kode tidak dijalankan
} on NoSuchMethodError {
  // Kode program yang dialam `on` ini yang akan dijalankan
  print("Method tidak ditemukan");
} catch (err) {
  // Tidak dijalankan
  print("Terjadi kesalahan");
  print(err.toString());
}

Enter fullscreen mode Exit fullscreen mode

Output:

Penggunaan fungsi FINALLY pada PHP

Sekarang yang keluar adalah Method tidak ditemukan bukan Terjadi kesalahan. Kok iso ? itu karena jenis error nya adalah NoSuchMethodError jadi kode program yang ada didalam on NoSuchMethodError itulah yang akan dijalankan.

finally

finally akan dijalankan ketika semua proses selesai, baik itu ada error atau tidak.

Contoh program ketika ada error:

try {
  // Kode disini akan berjalan pertama kali
  print("Proses...");
  dynamic name = 20;
  print(name.length); // Awww error !
  print("Finish !"); // Kode tidak dijalankan
} catch (err) {
  print("Terjadi kesalahan");
} finally {
  print("Proses try-catch selesai");
}

Enter fullscreen mode Exit fullscreen mode

Output program:

Penggunaan fungsi FINALLY pada PHP

Contoh kode program ketika tidak ada error:

try {
  // Kode disini akan berjalan pertama kali
  print("Proses...");
  dynamic name = 20;
  print(name);
  print("Finish !"); // Berjalan
} catch (err) {
  print("Terjadi kesalahan");
} finally {
  print("Proses try-catch selesai");
}

Enter fullscreen mode Exit fullscreen mode

Output program:

Penggunaan fungsi FINALLY pada PHP

Wait, kenapa harus pakai finally ?

Bukankah sama aja ketika kita tidak menggunakan finally ?

Penggunaan fungsi FINALLY pada PHP

Okee kita coba kalau tanpa finally yaa. Jadi programnya:

try {
  // Kode disini akan berjalan pertama kali
  print("Proses...");
  dynamic name = 20;
  print(name.length); // Awww error !
  print("Finish !"); // Kode tidak dijalankan
} catch (err) {
  print("Terjadi kesalahan");
}

print("Proses try-catch selesai");

Enter fullscreen mode Exit fullscreen mode

Output program:

Penggunaan fungsi FINALLY pada PHP

Ehhh, iyaa juga yaaa...

Penggunaan fungsi FINALLY pada PHP

Eitss, finally ini biasanya digunakan untuk membuat program kita lebih konsisten. Umumnya digunakan ketika:

  • Selesai terhubung ke database
  • Membersihkan memori

Sumber https://stackoverflow.com/a/16705037/9905881

Okee deh mungkin itu saja, untuk pembahasan mengenai error / exception handling di bahasa Dart. Kalau kalian memiliki saran / kritikan silahkan komentar yaa 😉

Terima kasih sudah membaca ~

Sebutkan apa saja yang bisa dilakukan untuk penanganan exception?

Terdapat dua penanganan exception yaitu: • Menangani sendiri exception tersebut. dan melemparkannya (throw) keluar agar ditangani oleh kode yang memanggil method(method yang didalamnya terdapat exception) tersebut.

Apa itu exception pada PHP?

Exception secara bahasa berarti pengecualian. Sedangkan secara istilah di dalam PHP, ia adalah sebuah perubahan alur program dari kondisi normal ke kondisi tertentu (atau pengecualian tertentu) jika terjadi suatu error (exception).

Versi PHP manakah yang memperkenalkan try catch exception?

Beberapa exception yang ada di PHP contohnya adalah try dan catch. Exception diperkenalkan di PHP versi 5, ketika penanganan kesalahan standar terbukti tidak cukup untuk kasus-kasus tertentu. Fungsi utama yang digunakan untuk menangani Exception adalah PHP try catch and throw.