Kesalahan adalah kutukan bagi pengguna dan pemrogram. Pengembang jelas tidak ingin program mereka jatuh di setiap belokan dan pengguna sekarang sudah terbiasa dengan kesalahan dalam program yang dengan enggan mereka terima untuk membayar harga perangkat lunak yang hampir pasti memiliki setidaknya satu kesalahan Itu. Jawa dirancang untuk memberi programmer kesempatan olahraga dalam merancang aplikasi yang bebas dari kesalahan. Ada beberapa pengecualian yang akan diketahui oleh programmer adalah kemungkinan ketika aplikasi berinteraksi dengan sumber daya atau pengguna dan pengecualian ini dapat ditangani. Sayangnya, ada pengecualian yang tidak dapat dikendalikan atau hanya diabaikan oleh programmer. Singkatnya, semua pengecualian tidak dibuat sama dan oleh karena itu ada beberapa jenis untuk dipikirkan oleh seorang programmer.
Pengecualian adalah peristiwa yang menyebabkan program tidak dapat mengalir dalam eksekusi yang dimaksudkan. Ada tiga jenis pengecualian — pengecualian yang diperiksa, kesalahan dan pengecualian runtime.
Pengecualian yang Diperiksa
Pengecualian yang diperiksa adalah pengecualian yang harus dapat diatasi oleh aplikasi Java. Sebagai contoh, Jika suatu aplikasi membaca data dari suatu file, ia seharusnya dapat menangani FileNotFoundException
. Lagi pula, tidak ada jaminan bahwa file yang diharapkan akan berada di tempat yang seharusnya. Apa pun bisa terjadi pada sistem file, yang tidak diketahui oleh suatu aplikasi.
Untuk mengambil contoh ini selangkah lebih maju. Katakanlah kita menggunakan FileReader
kelas untuk membaca file karakter. Jika Anda telah melihat Definisi konstruktor FileReader di api Java Anda akan melihat tanda tangan metode itu:
FileReader publik (String fileName) melempar FileNotFoundException.
Seperti yang Anda lihat, konstruktor secara khusus menyatakan bahwa FileReader
konstruktor dapat melempar FileNotFoundException
. Ini masuk akal karena sangat mungkin bahwa nama file
String akan salah dari waktu ke waktu. Lihatlah kode berikut:
public static public void (String [] args) { FileReader fileInput = null; // Buka file input. fileInput = FileReader baru ("Untitled.txt"); }
Secara sintaksis pernyataan tersebut benar tetapi kode ini tidak akan pernah dikompilasi. Kompiler tahu FileReader
konstruktor dapat melempar FileNotFoundException
dan terserah kode panggilan untuk menangani pengecualian ini. Ada dua pilihan - pertama kita dapat melewatkan pengecualian dari metode kita dengan menetapkan a melempar
klausa juga:
public static public void (String [] args) melempar FileNotFoundException { FileReader fileInput = null; // Buka file input. fileInput = FileReader baru ("Untitled.txt"); }
Atau kita dapat benar-benar menangani dengan pengecualian:
public static public void (String [] args) { FileReader fileInput = null; mencoba. { // Buka file input. fileInput = FileReader baru ("Untitled.txt"); } catch (FileNotFoundException ex) { // beritahu pengguna untuk pergi dan menemukan file. } }
Aplikasi Java yang ditulis dengan baik harus dapat mengatasi pengecualian yang diperiksa.
Kesalahan
Jenis pengecualian kedua dikenal sebagai kesalahan. Ketika pengecualian terjadi JVM akan membuat objek pengecualian. Semua benda ini berasal dari Bisa dibuang
kelas. Itu Bisa dibuang
kelas memiliki dua subclass utama— Kesalahan
dan Pengecualian
. Itu Kesalahan
class menunjukkan suatu pengecualian bahwa suatu aplikasi tidak mungkin dapat menangani.
Pengecualian ini dianggap langka. Misalnya, JVM mungkin kehabisan sumber daya karena perangkat keras tidak mampu mengatasi semua proses yang harus dihadapi. Adalah mungkin bagi aplikasi untuk menangkap kesalahan untuk memberi tahu pengguna tetapi biasanya aplikasi harus ditutup sampai masalah yang mendasarinya ditangani.
Pengecualian Runtime
SEBUAH pengecualian runtime terjadi hanya karena programmer telah melakukan kesalahan. Anda telah menulis kode, semuanya terlihat bagus untuk kompiler dan ketika Anda menjalankan kode, kode itu jatuh karena itu mencoba mengakses elemen dari array yang tidak ada atau kesalahan logika menyebabkan metode dipanggil dengan null nilai. Atau sejumlah kesalahan yang bisa dilakukan oleh seorang programmer. Tapi tidak apa-apa, kami melihat pengecualian ini dengan pengujian menyeluruh, kan?
Kesalahan dan Pengecualian Runtime termasuk dalam kategori pengecualian yang tidak dicentang.