Direkomendasikan, 2024

Pilihan Editor

Perbedaan Antara Kesalahan dan Pengecualian di Jawa

"Throwable" bertindak sebagai root untuk hierarki kesalahan dan pengecualian Java. "Kesalahan" adalah kondisi kritis yang tidak dapat ditangani oleh kode program. "Pengecualian" adalah situasi luar biasa yang dapat ditangani oleh kode program. Perbedaan signifikan antara kesalahan dan pengecualian adalah bahwa kesalahan disebabkan karena kurangnya sumber daya sistem, dan pengecualian disebabkan karena kode Anda. Mari kita mempelajari perbedaan lain antara kesalahan dan pengecualian bersamaan dengan grafik perbandingan.

Grafik perbandingan

Dasar untuk PerbandinganKesalahanPengecualian
DasarKesalahan disebabkan karena kurangnya sumber daya sistem.Pengecualian disebabkan karena kode.
PemulihanKesalahan tidak bisa dipulihkan.Pengecualian dapat dipulihkan.
Kata kunciTidak ada cara untuk menangani kesalahan dengan kode program.Pengecualian ditangani menggunakan tiga kata kunci "coba", "tangkap", dan "lempar".
Konsekuensi
Ketika kesalahan terdeteksi, program akan diakhiri secara tidak normal.Sebagai pengecualian terdeteksi, itu dilemparkan dan ditangkap oleh kata kunci "melempar" dan "menangkap".
JenisKesalahan diklasifikasikan sebagai tipe tidak dicentang.Pengecualian diklasifikasikan sebagai tipe dicentang atau tidak dicentang.
PaketDi Jawa, kesalahan didefinisikan paket "java.lang.Error".Di Jawa, pengecualian didefinisikan dalam "java.lang.Exception".
ContohOutOfMemory, StackOverFlow.Pengecualian yang Diperiksa: NoSuchMethod, ClassNotFound.
Pengecualian tidak dicentang: NullPointer, IndexOutOfBounds.

Definisi Kesalahan

" Kesalahan " adalah subkelas dari kelas bawaan "Throwable". Kesalahan adalah kondisi kritis yang terjadi karena kurangnya sumber daya sistem, dan itu tidak dapat ditangani oleh kode program. Kesalahan tidak dapat dipulihkan dengan cara apa pun karena tidak dapat dibuat, dilempar, ditangkap atau dibalas. Kesalahan disebabkan oleh kegagalan bencana yang biasanya tidak dapat ditangani oleh program Anda.

Kesalahan selalu bertipe tidak dicentang, karena kompiler tidak memiliki pengetahuan tentang kejadiannya. Kesalahan selalu terjadi di lingkungan run-time. Kesalahan dapat dijelaskan dengan bantuan contoh, program memiliki kesalahan stack overflow, kehabisan memori, atau kesalahan sistem crash, kesalahan semacam ini disebabkan oleh sistem. Kode tidak bertanggung jawab atas kesalahan tersebut. Konsekuensi dari terjadinya kesalahan adalah bahwa program akan diakhiri secara tidak normal.

Definisi Pengecualian

"Pengecualian" juga merupakan subkelas dari kelas bawaan "Throwable". Pengecualian adalah kondisi luar biasa yang terjadi di lingkungan runtime. Sebagian besar pengecualian disebabkan karena kode program kami. Namun, pengecualian dapat ditangani oleh program itu sendiri, karena pengecualian dapat dipulihkan. Pengecualian ditangani dengan menggunakan tiga kata kunci "coba", "tangkap", "lempar". Sintaks penulisan pengecualian adalah:

 coba {// tulis kode Anda di sini} Tangkapan (Jenis pengecualian) {// tulis kode Anda di sini} 

Dalam kode di atas, kode yang ditulis di blok try adalah kode yang ingin Anda pantau untuk pengecualian. Jika pengecualian terjadi dalam blok coba, itu dilemparkan menggunakan kata kunci "lempar". Pengecualian yang dilemparkan dapat ditangkap oleh blok "catch" dari kode di atas. "Jenis pengecualian" adalah jenis pengecualian yang telah terjadi.

Dengan kata sederhana kita dapat mengatakan bahwa kesalahan yang terjadi karena kode yang tidak tepat disebut pengecualian. Misalnya, jika kelas yang diminta tidak ditemukan, atau metode yang diminta tidak ditemukan. Pengecualian semacam ini disebabkan oleh kode dalam program; sistem tidak bertanggung jawab atas pengecualian semacam ini. Pengecualian diklasifikasikan sebagai "dicentang" dan "tidak dicentang". Pengecualian tidak dicentang tidak dalam pengetahuan tentang kompiler karena mereka terjadi selama runtime sedangkan, kompiler memiliki pengetahuan tentang pengecualian diperiksa karena mereka dikenal untuk mengkompilasi selama waktu kompilasi.

Perbedaan Kunci dalam Kesalahan dan Pengecualian

  1. Kesalahan terjadi hanya ketika sumber daya sistem kurang sedangkan, pengecualian disebabkan jika kode memiliki beberapa masalah.
  2. Kesalahan tidak pernah dapat dipulihkan, pengecualian dapat dipulihkan dengan menyiapkan kode untuk menangani pengecualian.
  3. Kesalahan tidak pernah bisa ditangani tetapi, pengecualian dapat ditangani oleh kode jika kode yang melempar pengecualian ditulis di dalam blok coba dan tangkap.
  4. Jika kesalahan telah terjadi, program akan dihentikan secara tidak normal. Di sisi lain, Jika pengecualian terjadi, program akan melempar pengecualian, dan ditangani menggunakan blok coba dan tangkap.
  5. Kesalahan adalah tipe tidak dicentang yaitu kesalahan tidak dalam pengetahuan kompiler sedangkan, pengecualian diklasifikasikan sebagai dicentang dan tidak dicentang.
  6. Kesalahan didefinisikan dalam paket java.lang.Error sedangkan, pengecualian didefinisikan java.lang.Exception.

Kesimpulan:

Pengecualian adalah hasil dari kesalahan yang dilakukan dalam pengkodean program, dan kesalahan adalah hasil dari berfungsinya sistem secara tidak benar.

Top