Logo ms.removalsclassifieds.com

Perbezaan Antara Pengecualian yang Ditanda dan Tidak Ditanda (Dengan Jadual)

Isi kandungan:

Anonim

Menyemak pengecualian adalah salah satu perkara yang paling penting dalam pengaturcaraan dan ujian perisian. Pengecualian Ditanda Dan Tidak Ditanda menghentikan program daripada berjalan apabila ia cuba menangkap pepijat atau ralat. Selain itu, ia dianggap sebagai tanggungjawab pengaturcara untuk memastikan ralat ini tidak pernah berlaku. Kedua-dua Pengecualian yang Disemak dan Tidak Disemak adalah sangat serupa, namun ia berbeza antara satu sama lain.

Pengecualian Ditandai lwn Tidak Ditandai

Perbezaan antara Pengecualian Disemak Dan Tidak Disemak ialah pengecualian yang Disemak ialah pengecualian yang mesti ditangkap dan dikendalikan oleh penyataan semakan () atau ia akan menyebabkan program menamatkan dan mencetak jejak tindanan, manakala, Pengecualian yang tidak ditanda, sebaliknya, harus tidak perlu ditangkap atau dikendalikan sama sekali, kerana ia adalah tanggungjawab pengaturcara untuk memastikan ralat ini tidak pernah berlaku.

Pengecualian yang Diperiksa ialah jenis pengecualian tertentu yang menghentikan program daripada berjalan sehingga ia sama ada ditangkap oleh blok tangkapan atau dinyatakan dalam klausa lontaran kaedah, lebih-lebih lagi, Pengecualian yang Diperiksa ditangkap dan dikendalikan oleh penyataan semakan () atau mereka akan menyebabkan program ditamatkan dan mencetak jejak tindanan.

Jika kod yang menyebabkan pengecualian tidak diuji dengan betul, ia boleh menyebabkan pepijat luar biasa Tidak Ditanda pelik yang sukar dicari dan diperbaiki. Selain itu, Pengecualian yang tidak disemak seharusnya tidak perlu ditangkap atau dikendalikan sama sekali, kerana adalah tanggungjawab pengaturcara untuk memastikan ralat ini tidak pernah berlaku.

Jadual Perbandingan Antara Pengecualian yang Ditanda dan Tidak Ditanda

Parameter Perbandingan

Disemak Pengecualian

Pengecualian tidak ditandai

Definisi

Pengecualian yang disemak adalah pengecualian yang mesti ditangkap dan dikendalikan oleh penyata semakan (). Pengecualian yang tidak disemak seharusnya tidak perlu ditangkap atau dikendalikan sama sekali.
Kejadian

Pengecualian yang diperiksa mesti dikendalikan oleh blok tangkapan semasa masa penyusunan. Pengecualian tidak ditangkap juga dikenali sebagai pengecualian masa jalan ialah Pengecualian Tidak Ditanda.
Pengendalian Ralat

Pengecualian yang Ditanda menghentikan program daripada berjalan sehingga cuba menangkap pepijat atau ralat. Adalah menjadi tanggungjawab pengaturcara untuk memastikan ralat ini tidak pernah berlaku.
Kelas Pengecualian

Ia mempunyai kelas yang luar biasa. Ia tidak mempunyai sebarang kelas luar biasa atau ia bukan sebahagian besar daripada kelas luar biasa.
Contoh

OutOfMemoryError, NullPointerException dan StackOverflowError. IndexOutOfBoundsException

Apakah Pengecualian yang Diperiksa?

Pengecualian yang Disemak berkait rapat dengan ujian perisian, lebih-lebih lagi, pengecualian yang disemak adalah pengecualian yang mesti dikendalikan, atau program akan ditamatkan. Ini bermakna kod yang mengikuti pernyataan lontaran tidak akan dilaksanakan jika tiada blok tangkapan mengendalikan pengecualian. Pengecualian yang diperiksa mempunyai dua tujuan iaitu menghentikan program daripada meneruskan apabila ralat telah berlaku dan ia boleh memberikan maklumat penyahpepijatan tentang tempat untuk mencari ralat tersebut.

Pengkompil tidak memaksa pengaturcara untuk mengendalikan pengecualian, tetapi mana-mana kelas yang memanjangkan kelas lain juga harus sama ada melanjutkan atau melaksanakan semua pengecualian yang diperiksa. Jika tidak, kompilasi kelas lanjutan gagal dengan ralat masa kompilasi yang menyatakan bahawa ia mesti mengendalikan semua pengecualian yang diperiksa superclassnya. Ini menghalang warisan daripada digunakan untuk memintas mod kegagalan terbina dalam.

Apabila pengecualian dilemparkan, ia diserahkan kepada penyahpepijat dalam Eclipse atau kepada sistem pengendalian, yang kemudiannya menamatkan program secara normal. Sistem pengendalian mencetak jejak tindanan. Surih tindanan menyediakan maklumat untuk setiap panggilan kaedah dalam susunan ia dipanggil. Ini membolehkan pengaturcara mencari di mana dalam kod atau di mana dalam aliran pelaksanaan kod mereka pengecualian berlaku.

Apakah Pengecualian Tidak Ditanda?

Pengecualian yang tidak disemak wujud untuk membolehkan pengaturcara memprogram dengan lebih fleksibel dan cekap. Java telah direka bentuk untuk membolehkan pengaturcara mencipta aplikasi yang menggunakan sumber dengan cekap dan mengelakkan kemunculan kebuntuan. Pengecualian yang tidak disemak boleh dihapuskan dengan reka bentuk yang teliti dan amalan pengekodan. Walau bagaimanapun, semua pengecualian lain kecuali NullPointerException yang berlaku dalam kod Java dianggap tidak ditanda.

Pengecualian yang tidak disemak seharusnya tidak perlu ditangkap atau dikendalikan sama sekali. Selain itu, Ia adalah satu cara untuk kod peringkat lebih tinggi untuk memberitahu kod peringkat rendah bahawa ia akan melakukan sesuatu yang tidak selamat untuk benang, tetapi itu tidak akan menyebabkan masalah jika terdapat hanya satu utas berjalan pada bila-bila masa, seperti sebagai mengemas kini beberapa data atau memberikan beberapa grafik pada skrin.

Menggunakan pengecualian yang tidak disemak adalah cadangan berisiko. Jika kelas akan membuang pengecualian yang tidak ditanda, maka siapa yang menggunakan kelas itu perlu menyedarinya dan mempunyai beberapa kaedah yang ketat untuk menanganinya. Sebagai contoh, seorang pengaturcara mungkin ingin membaca beberapa data daripada fail dan kemudian menulisnya semula, dan fungsi jenis ini tidak memerlukan sebarang penyegerakan. Ia boleh diterima dengan sempurna untuk aplikasi membaca data yang sama dua kali pada dua utas berbeza tanpa mempunyai sebarang kesan negatif pada prestasi atau kestabilan sistem.

Perbezaan Utama Antara Pengecualian Disemak dan Tidak Disemak

Kesimpulan

Pengecualian yang disemak ialah pengecualian yang mesti dikendalikan, atau program akan ditamatkan. Walau bagaimanapun, Pengecualian yang tidak disemak adalah pengecualian yang melaksanakan fungsi berhenti untuk semua utas. Pengecualian Disemak Dan Tidak Disemak ialah isyarat kegagalan dalam kod. Ini berlaku apabila kod cuba melakukan sesuatu yang tidak dijangka. Jika kod yang menyebabkan pengecualian tidak diuji dengan betul, ia boleh menyebabkan pepijat pelik yang sukar dicari dan diperbaiki. Dalam sesetengah kes, pengaturcara mungkin perlu menulis semula keseluruhan program dari awal. Selain itu, Pengecualian Disemak Dan Tidak Disemak berkait rapat dengan ujian perisian.

Rujukan

Perbezaan Antara Pengecualian yang Ditanda dan Tidak Ditanda (Dengan Jadual)