Disyorkan, 2021

Pilihan Editor

Perbezaan Antara Ralat dan Pengecualian di Jawa

Bertindak "dilambatkan" sebagai akar untuk kesilapan Java dan hierarki pengecualian. "Ralat" adalah keadaan kritikal yang tidak dapat dikendalikan oleh kod program. "Pengecualian" adalah situasi yang luar biasa yang dapat dikendalikan oleh kod program. Perbezaan yang signifikan antara kesilapan dan pengecualian adalah bahawa ralat disebabkan oleh kekurangan sumber sistem, dan pengecualian disebabkan oleh kod anda. Marilah kita mengkaji perbezaan lain antara kesilapan dan pengecualian bersama dengan carta perbandingan.

Carta Perbandingan

Asas untuk PerbandinganRalatPengecualian
AsasKesilapan disebabkan kerana kekurangan sumber sistem.Pengecualian disebabkan kerana kod.
PemulihanKesilapan tidak dapat dipulihkan.Pengecualian boleh dipulihkan.
Kata kunciTidak ada cara untuk mengatasi ralat oleh kod program.Pengecualian dikendalikan menggunakan tiga kata kunci "cuba", "menangkap", dan "membuang".
Akibatnya
Oleh kerana ralat dikesan program akan ditamatkan secara tidak normal.Sebagai pengecualian dikesan, ia dibuang dan ditangkap oleh kata kunci "buang" dan "menangkap" sepadan.
JenisKesilapan diklasifikasikan sebagai jenis yang tidak terkawal.Pengecualian diklasifikasikan sebagai jenis yang diperiksa atau tidak ditandakan.
PakejDi Jawa, ralat ditakrifkan sebagai pakej "java.lang.Error".Di Jawa, pengecualian ditakrifkan dalam "java.lang.Exception".
ContohOutOfMemory, StackOverFlow.Pengecualian diperiksa: NoSuchMethod, ClassNotFound.
Pengecualian tidak tercatat: NullPointer, IndexOutOfBounds.

Definisi Ralat

" Ralat " adalah subclass kelas terbina dalam "Throwable". Kesilapan adalah keadaan kritikal yang berlaku disebabkan kekurangan sumber sistem, dan ia tidak dapat dikendalikan oleh kod program. Kesilapan tidak boleh ditemui dengan apa cara sekalipun kerana mereka tidak boleh dibuat, dibuang, ditangkap atau dijawab. Kesalahan disebabkan oleh kegagalan bencana yang biasanya tidak dapat dikendalikan oleh program anda.

Kesilapan sentiasa jenis yang tidak disemak, kerana pengkompil tidak mempunyai pengetahuan tentang kejadiannya. Kesilapan sentiasa berlaku dalam persekitaran jangka masa. Kesilapan boleh dijelaskan dengan bantuan contoh, program ini mempunyai ralat overflow tumpukan, daripada ralat ingatan, atau ralat kemalangan sistem, ralat jenis ini disebabkan oleh sistem. Kod tidak bertanggungjawab untuk kesilapan tersebut. Akibat berlakunya kesilapan adalah bahawa program itu akan ditamatkan secara tidak normal.

Definisi Pengecualian

"Pengecualian" juga merupakan subclass kelas terbina dalam "Throwable". Pengecualian adalah syarat-syarat yang luar biasa yang berlaku dalam persekitaran runtime. Kebanyakan pengecualian masa disebabkan oleh kod program kami.Tetapi, pengecualian boleh dikendalikan oleh program itu sendiri, kerana pengecualian boleh diperolehi semula. Pengecualian ditangani dengan menggunakan tiga kata kunci "cuba", "menangkap", "membuang". Sintaks penulisan pengecualian ialah:

 cuba {// tulis kod anda di sini} Tangkap (Jenis pengecualian) {// tulis kod anda di sini} 

Dalam kod di atas, kod yang ditulis dalam blok cuba adalah kod yang anda mahu memantau pengecualian. Jika pengecualian berlaku dalam blok cuba, ia dilemparkan menggunakan kata kunci "buang". Pengecualian yang dibuang dapat ditangkap oleh blok "menangkap" kod di atas. "Jenis pengecualian" ialah jenis pengecualian yang telah berlaku.

Dalam kata-kata mudah kita boleh mengatakan bahawa kesilapan berlaku kerana kod yang tidak betul dipanggil pengecualian. Sebagai contoh, jika kelas yang diminta tidak dijumpai, atau kaedah yang diminta tidak dijumpai. Pengecualian jenis ini adalah disebabkan oleh kod dalam program ini; sistem ini tidak bertanggungjawab untuk pengecualian jenis ini. Pengecualian dikelaskan sebagai "diperiksa" dan "tidak ditandai". Pengecualian yang tidak tercatat tidak dalam pengetahuan pengkompil seperti yang terjadi semasa runtime sedangkan pengkompil mempunyai pengetahuan tentang pengecualian yang diperiksa kerana mereka diketahui pengompil semasa masa penyusunan.

Perbezaan Utama dalam Ralat dan Pengecualian

  1. Ralat berlaku hanya apabila sumber sistem kekurangan sedangkan pengecualian disebabkan jika kod mempunyai masalah.
  2. Kesilapan tidak boleh diperolehi semula, pengecualian boleh diperolehi dengan menyediakan kod untuk menangani pengecualian.
  3. Kesalahan tidak dapat dikendalikan tetapi, pengecualian boleh dikendalikan oleh kod jika kod yang melemparkan pengecualian ditulis di dalam blok cuba dan menangkap.
  4. Jika ralat telah berlaku, program akan ditamatkan secara tidak normal. Sebaliknya, Jika pengecualian berlaku, program akan membuang pengecualian, dan ia dikendalikan menggunakan blok cuba dan menangkap.
  5. Kesilapan adalah jenis yang tidak terkawal iaitu kesilapan tidak dalam pengetahuan pengkompil sedangkan, pengecualian diklasifikasikan sebagai diperiksa dan tidak dicentang.
  6. Kesalahan ditakrifkan dalam pakej java.lang.Error sedangkan pengecualian ditakrifkan java.lang.Exception.

Kesimpulan:

Pengecualian adalah hasil kesilapan yang dilakukan dalam pengekodan program, dan kesilapan adalah akibat dari fungsi sistem yang tidak wajar

Top